Brazil defeated Colombia 2-1 and Germany beat France 1-0 in the World Cup quarter-finals on Friday to set up a heavyweight semi-final showdown.
An early goal from Brazil skipper Thiago Silva and a stunning free-kick from David Luiz was enough to give the World Cup hosts victory over Colombia in a niggly last eight meeting in Fortaleza.
Colombia's star James Rodriguez left the field in tears after his sixth goal of the tournament, an 80th-minute penalty, was not enough to prevent Brazil from advancing to Tuesday's semi-final in Belo Horizonte.
Also Read
The victory came at a cost for Brazil, though, with captain Silva picking up a yellow card which will see him suspended for the clash with the Germans.
Star striker Neymar was also stretchered from the pitch late in the game, potentially creating a problem for Brazil coach Luiz Felipe Scolari.
Television station Globo reported that he had been taken to hospital to undergo tests.
Silva had earlier settled Brazilian nerves, punishing slack Colombian marking at a corner to tap home after only seven minutes.
Luiz struck an astonishing 69th-minute free-kick to put Brazil 2-0 up before Colombia fought back.
Rodriguez, the outstanding player of the tournament so far, scored a penalty to make it 2-1 after Brazilian goalkeeper Julio Cesar brought down Carlos Bacca.
But Colombia were unable to find the equaliser to force extra-time as Brazil advanced to the last four.
Brazil's semi-final will see them play Germany in a repeat of the 2002 World Cup final won 2-0 by the South Americans.
It will be only the second time Brazil has met Germany at a World Cup.