The two teams went into the clash in Fortaleza knowing Germany were lying in wait in the last four following their 1-0 win over France earlier today.
The host was in dreamland after just seven minutes as Brazil’s captain Thiago Silva bundled home the opening goal from close range after Neymar’s corner had reached the back post.
The game was often a scrappy affair, with James Rodriguez the subject of some heavy tackling from Luiz Felipe Scolari’s men, who were twice denied by Colombia’s goalkeeper David Ospina when he saved well to keep out strikes from Hulk and then Oscar.
Neymar curled a 20-yard free-kick just over the crossbar on 44 minutes while Fredy Guarin’s volley on 59 was also off target, but David Luiz had the home fans jumping with joy on 68 when he steered a swerving 30-yard free-kick into the back of the net for his second goal of the tournament.
Columbia was given a lifeline with 12 minutes remaining when Julio Cesar clumsily brought down sub Carlos Bacca in the 18 – yard box to give Colombia a penalty – and Rodriguez made no mistake, sending Cesar the wrong way to ensure he has scored in five consecutive games in Brazil.
Neymar was stretchered off late following a crunching tackle by Juan Camilo Zuniga and Brazil hung on grimly in the closing stages – but they got across the finishing line to set up a mouth-watering clash with Joachim Low’s Germans in Belo Horizonte on Tuesday night.