Austria argues a new influx of asylum-seekers through the Western Balkan route is reason enough to postpone Schengen enlargement.
Austria has blocked the accession of Romania and Bulgaria into Schengen, the passport-free area that has abolished border checks between the vast majority of EU member states.
The Netherlands supported Romania's bid but opposed Bulgaria's.
Croatia, however, received unanimous backing and will join the Schengen Area as of January 2023.
The votes took place in Brussels on Thursday afternoon during a high-stakes meeting of interior ministers.
Romania and Bulgaria "are fulfilling all the requirements. They have been waiting for a long time. The citizens of Bulgaria and Romania deserve to be fully part of the Schengen area," Ylva Johansson, European Commissioner for home affairs, said after the meeting.
"I thought, actually, that we would have the decision today. So, I think that today is a day of disappointment."
The negative conclusion, which was widely expected, represents a painful political defeat for both Romania and Bulgaria, who joined the European Union six years before Croatia.
The European Commission, in charge of assessing Schengen candidacies, has said the two countries are ready to become part of the passport-free area since at least 2011.
The executive released another unconditional endorsement just last month, while the European Parliament passed a new resolution denouncing the exclusion as "discriminatory."
Over the past few years, countries that were previously opposed to Schengen enlargement, such as Finland, Denmark, Sweden and Belgium, softened their positions, increasing the odds of a positive outcome.
France and Germany, the bloc's most influential states, voiced their support for Romania and Bulgaria this year.
But none of this was enough to overcome the Austrian and Dutch reticence.
As Schengen accession requires unanimity, the small minority managed to block the whole process. The debate on Thursday took "longer than expected," said an EU diplomat, describing "certain bitterns in the room" once the result became clear.
Austria's opposition, which has surprised many in Brussels as it only emerged in recent weeks, is based on a new influx of asylum-seekers through the Western Balkan route.
"The system is currently not working. Austria got (this year) more than 100,000 illegal border crossings, 75,000 of them not registered, although we are inland country, in the middle of Europe – in the middle of the Schengen countries," said Austrian Interior Minister Gerhard Karner.
"The system doesn't work. This means that we first have to significantly improve the system at this point. Therefore, I am in favour of postponing the vote and including these countries accordingly".
Bucharest has vehemently countered Vienna's claims, arguing Romania is not part of the Western Balkan route and that several reports issued by the European Commission and fact-finding missions of experts have proven the country is well prepared to manage its external borders.
Frontex, the EU's border control agency, does consider Romania and Bulgaria to be part of the Western Balkan route, a spokesperson told Euronews. In the first 10 months of this year, the path has seen more than 128,000 border-crossing incidents, a 168% rise compared to the same period in 2021.
'Their time will come soon'
For its part, the Netherlands voted against Bulgaria's accession bid over what it calls unaddressed rule-of-law concerns and pending pieces of legislation to tackle corruption and organised crime.
Bulgaria, which has had a caretaker government since August after a series of inconclusive elections, challenged these claims and said the opposition was unrelated to the Schengen criteria.
"Two member states expressed reservations but they don't have any particular concerns with relations to Schengen," Bulgarian Interior Minister Ivan Demerdzhiev told Euronews at the end of the meeting, noting his country was ready to take the "necessary steps" to convince its skeptical partners.
"The argument of Austria is that Schengen is not working and we must unite our efforts to make Schengen work as it has to, and then enlarge it with Bulgaria and Romania. Until then, Bulgaria is not responsible for the internal problems in Austria."
At the same time, Austria and the Netherlands threw their support behind the third outstanding candidate to join Schengen: Croatia, whose evaluation process was completed back in 2020.
Croatia was earlier this year also given the go-ahead to adopt the euro and will therefore as of January 2023 be a member of the eurozone and the Schengen area.
"Romania and Bulgaria are ready to be Schengen members and I'm very thankful to both countries for all their work," said Czech Interior Minister Vít Rakušan, on behalf of the EU Council's presidency. "I'm convinced their time will come soon."
Rakušan clarified that Romania and Bulgaria were voted as one joint item and that decoupling their bids was not possible "from a legal point of view."
Ylva Johansson said the European Commission would remain "optimistic" and ensure the accession takes place before the end of her mandate.
"When we are united in the EU, we are so strong, we can achieve so much," Johansson told reporters. "When it comes to the accession of Romania and Bulgaria, we are not united and that makes us very weak and that makes me also sad."
Schengen enables cross-border travel without the need to carry a passport or pass through border controls. It currently encompasses 26 countries, including 22 EU member states, and almost 420 million citizens.
Joining Schengen is a legal obligation for every EU country.
Only Ireland, which negotiated an opt-out clause decades ago, and Cyprus, which remains split between north and south, have not applied to enter the passport-free area.
This article has been updated to include new reaction.