Thiago Silva and David Luiz gave Brazil a thrilling 2-1 win over Colombia, setting up a semi-final with Germany.
It wasn't all good news, as Neymar was stretchered off and captain Thiago Silva will be suspended.
Fortaleza hosted a splendid quarter-final, as the hosts had a lucky escape beating Chile on penalties, while Los Cafeteros had won every game in style so far. Victor Ibarbo and Fredy Guarin came in, dropping Jackson Martinez, so seven of the starting XI play their football in Serie A. Luiz Gustavo was suspended and Dani Alves surprisingly left out in favour of Roma full-back Douglas Maicon.
Their last four meetings ended in draws, but Colombia had never beaten Brazil on their home turf before.
It took just seven minutes for the Selecao to break through, as Thiago Silva was left unmarked at the back post to tap in a Neymar corner, taking Carlos Sanchez by surprise.
This was the first time in the tournament that Colombia found themselves trailing, but they fought back immediately with Juan Guillermo Cuadrado’s strike deflected on to the side-netting.
David Ospina did well to parry from Hulk and plucked Oscar’s follow-up out of the air, but it was end to end stuff and Thiago Silva’s interception on a Cuadrado counter was decisive.
Ospina got down with one hand to deny a fierce Hulk angled drive, Thiago Silva flung himself in the path of a Cuadrado strike and a James Rodriguez free kick was also charged down. Neymar’s set piece was just past the far top corner.
The second half started in scrappier fashion and, despite numerous crunching tackles, the first booking came on 64 minutes. Thiago Silva received it for stopping Ospina resuming play and it means he’ll be suspended for the semi-final. It was the 39th foul of the game.
Fredy Guarin volleyed high and wide, while Mario Yepes had the ball in the net only after the offside flag had been raised on a chaotic free kick.
James Rodriguez was also booked for a mistimed sliding tackle on Hulk and from that free kick David Luiz curled a sensational finish into the top corner. It dipped viciously over the wall to leave Ospina helpless, but Colombia were furious, feeling the initial foul was soft.
A perfectly-timed tackle from Atalanta’s Yepes stopped Neymar going clear on goal, but Julio Cesar took down Carlos Bacca as he ran on to a James Rodriguez through ball to give Colombia a penalty. Rodriguez converted by sending Julio Cesar the wrong way, meaning he has scored in every game of this World Cup.
Colombia were pouring forward now and Bacca had a shot charged down, but Neymar was stretchered off after a knee in the back from Juan Camilo Zuniga.
The siege was ultimately not enough, despite Ospina coming forward for a free kick, as Brazil clung on to set up a World Cup semi-final with Germany.
Brazil 2-1 Colombia
Scorers: Thiago Silva 7 (B), David Luiz 69 (B), James Rodriguez pen 78 (C)
Brazil: Julio Cesar; Maicon, Thiago Silva, David Luiz, Marcelo; Paulinho (Hernanes 86), Fernandinho; Hulk (Ramires 82), Oscar, Neymar (Henrique 88); Fred
Colombia: Ospina; Zuniga, Zapata, Yepes, Armero; Sanchez, Guarin; Cuadrado (Quintero 80), James Rodriguez, Ibarbo (Adrian Ramos 46); Gutierrez (Bacca 70)
Ref: Carballo (ESP)