Brazil have had their last dance.
They appeared to have edged a tense, enervating quarter-final with a superbly constructed Neymar goal in the 105th minute and it felt, at the time, as if their talisman's moment of genuine arrival at this tournament could be a crucial event in its narrative.
But they reckoned without a remarkable, tough and accomplished Croatia team who have no idea when they are beaten. Bruno Petkovic's equaliser, as the clock ticked down, had not seemed likely but you can never write them off; penalties ensued and Dominik Livakovic, the hero against Japan, saved the first from Rodrygo.
When Marquinhos hit the post, with Croatia having been on point four times, the outcome was settled. A side inspired by Luka Modric, who dragged them around the pitch during their eighth extra-time period in nine knockout ties, cannot be discounted from going all the way.
It had been clear from the opening moments that Brazil would not expose Croatia as they did South Korea. Zlatko Dalic's side started the better and a tactical tweak, moving Modric to something resembling a No 10 from his previous role in a midfield three, paid dividends in possession and territory. Modric kept his old friend Casemiro occupied and nullified Brazil's attempts to build; Croatia had better success in doing that and created the first glimmer when Ivan Perisic could not make a clean contact on Mario Pasalic's delivery.
Qatar: beyond the football
This is a World Cup like no other. For the last 12 years the Guardian has been reporting on the issues surrounding Qatar 2022, from corruption and human rights abuses to the treatment of migrant workers and discriminatory laws. The best of our journalism is gathered on our dedicated Qatar: Beyond the Football home page for those who want to go deeper into the issues beyond the pitch.
Guardian reporting goes far beyond what happens on the pitch. Support our investigative journalism today.
Pasalic had scored the winning penalty against Japan and, alongside the left-back Borna Sosa, was recalled to the starting lineup. Both were, like their cohort, crisp and methodical.
Croatia clearly felt Brazil could be exploited from crosses and Modric dinked one over after mugging Casemiro, who had slept on a roll-out from Alisson. It was cleared but nobody could suggest the 2018 runners-up lacked intent.
During the first half-hour Brazil were rationed to a couple of sorties from Vinícius Júnior, who gave Livakovic catching practice with an early curler and saw Dejan Lovren block a measured effort. Space was at a premium, and certainly not being afforded in behind. When Neymar identified a pocket to exploit by nutmegging Marcelo Brozovic, his opponent was happy to take a booking for hauling him back.
Danilo had already received one for a dangerous high foot on the rampaging right-back Josip Juranovic. Brazil might not have liked it but as half-time neared Croatia were still calling the tune, operating with a physical and technical authority that had only patchily been evident in the last 16.
When they did lose possession, teammates aided each other: the masked Josko Gvardiol salvaged one such situation while Juranovic made a notable recovery challenge on Vinícius Júnior. Modric snuffed out Brazil's counter after Gvardiol had overcommitted on a gallop from defence.
Brazil had not got going: it is one thing having four excellent forwards, five if you count Lucas Paquetá's eagerness to be bolted on to that number, but another when you have scant midfield to connect them. Modric, Brozovic and Mateo Kovacic can control that domain in their sleep; they had not been put under anything like enough pressure here.
Tite had evidently relayed that message at the interval. Within two minutes of the restart Gvardiol almost turned Raphinha's cross past Livakovic, his blushes spared by the keeper's leg. Seconds later Vinícius Júnior fed Neymar but his effort was poorly caught; a handball by Jozo Simunovic in the buildup survived scrutiny by VAR.
Perisic crossed marginally over the head of Pasalic. Proceedings had finally opened up, Livakovic again repelling with his limbs after Richarlison had fed Neymar, and there was a sense Brazil would be better favoured as a result.
Yet Croatia regained a foothold, albeit without appearing likely to score. It must have felt a personal triumph for Juranovic when Rodrygo was enlisted in Vinícius Júnior's place. Livakovic blocked smartly from Paquetá after chaotic defending but Croatia were again dictating long periods of possession.
Every so often, Brazil would spring into life. They could point out that Livakovic's saves were racking up and he again denied Neymar from an angle in the 77th minute. Then Paquetá sidefooted straight at him after good work from Antony. But extra time had long seemed inevitable, perhaps since the very start, and Croatia led them there without further alarms.
The question was whether, against opposition of this quality, any heavy Croatian legs would eventually tell. Modric had not lasted beyond the 99th minute against Japan but, as that stage passed this time, he could be seen scampering towards Brazil's box as if the previous exchanges had never happened. They squandered a chance shortly afterwards, Brozovic firing waywardly, and there was enough to suggest somebody could still avert penalties.
It seemed Neymar had done so when, after a rapier move that began through a one-two with Rodrygo and finished via a rat-a-tat with Paquetá, he beat Sosa to the ball and finished emphatically.
A beautiful goal seemed to have settled things but then Modric set Croatia off again and the recently introduced substitute Mislav Orsic centred for Petkovic to sweep in via a deflection off Marquinhos. Croatia's entire bench celebrated beyond the touchline; their elation had nothing on what followed.