Macron's comments came after Italy's new populist government defiantly declared that its ports were closed to foreign-flagged rescue ships, after accusing fellow EU members of failing to share the burden of migrant arrivals.
The French president, speaking after talks in Paris with Spanish Prime Minister Pedro Sanchez, said member states that benefit from EU cooperation but "claim national self-interest when it comes to the issue of migrants" should have sanctions imposed on them.
The French and Spanish leaders also supported the creation of closed reception centres, located in the countries where migrants often arrive first, to hold asylum-seekers while their claims are processed.
Macron's comments drew a scathing response from Italy's new populist government.
Far-right Interior Minister Matteo Salvini denounced Macron's "arrogance" over the migrant issue.
"Six-hundred-and-fifty thousand landings in four years, 430,000 applications..., 170,000 apparent refugees currently housed in hotels, buildings and apartments at a cost exceeding five billion euros.
"If for the arrogant President Macron this is not a problem, we invite him to stop the insults and to demonstrate generosity by opening the many French ports and ceasing to push back women, children and men" the flashpoint Italian border town of Ventimiglia.
Meanwhile, a German charity vessel with more than 230 migrants aboard remained in limbo off the coast of Malta.
"The Lifeline, an illegal ship with 239 immigrants on board is in Maltese waters," Salvini wrote on Facebook.
"These boats can forget about reaching Italy, I want to stop the business of trafficking and mafia," said Salvini, whose country is on the frontline of the migrant crisis.
Malta also refused to take in the ship, but delivered humanitarian aid.
Salvini's tough talk came on the eve of an informal mini-summit of 16 leaders in Brussels to address the thorny issue of how the EU can tackle the renewed influx of migrants and refugees seeking a new life in Europe.
Underscoring the divisions, Poland, Hungary, Slovakia and the Czech Republic -- which reject any suggestion of mandatory refugee resettlement among EU members -- said they would boycott the meeting.
Czech Prime Minister Andrej Babis on Saturday said the timing of the mini-summit was "unfortunate" and that a real European solution should come through a full EU summit.
The crisis has also caused ructions in Germany, with Chancellor Angela Merkel facing a rebellion from her coalition allies over her policies.
Standoff between neighbours
The neighbours, who are close to the search and rescue zones of ships, squabbled again over the latest rescue vessel Lifeline on Friday, when Salvini said Malta should open its ports.
But Maltese Prime Minister Joseph Muscat said Lifeline "broke rules" by ignoring Italy's directions and should move towards its original destination "to prevent escalation".
The Italian government has said both Lifeline, run by German NGO Mission Lifeline, and another ship Seefuchs, run by German charity Sea-Eye, would be seized and directed to Italian ports for investigation "into their legal status".
More than 400 migrants were also rescued in three operations off the coast of Spain on Saturday, just days after Madrid took in the more than 600 rejected by Italy and Malta.
The Libyan navy said five people died and nearly 200 were rescued off its coast while trying to cross the Mediterranean.
A Danish cargo ship carrying 113 migrants was also stationed near the Sicilian port of Pozzallo waiting for instructions from Italy.
"The European Union must place the preservation and protection of people in distress before any other political considerations," European NGO SOS Mediterranee said Saturday.
Clock is ticking
Italy hardline stance comes at a time of deep EU tensions on immigration.
Sunday's mini-summit is supposed to prepare for a full summit next week, where 28 EU leaders will discuss plans to overhaul the bloc's asylum system, which has been under severe pressure since the migration crisis exploded in 2015.
Chancellor Merkel -- facing a ferocious political backlash for letting in over one million asylum seekers into Europe's biggest economy -- played down expectations of a quick solution.
"We know that no solution will be reached on Thursday and Friday at the level of the 28 member states... on the overall issue of migration," she said on a visit to Lebanon.
Instead, she said, "bilateral, trilateral and multilateral" deals must be reached to tackle the issue.
German Interior Minister Horst Seehofer has given Merkel a fortnight to find a European deal to curb new arrivals, failing which he has vowed to order border police to turn back migrants.
Czech Prime Minister Andrej Babis said Friday he was also ready to start turning away migrants if Berlin and Vienna did so.