Match ends, Belgium 1, Russia 0.
Belgium substitute Divock Origi grabbed a winner two minutes from time against Russia to take his side into the last 16.
Alexander Kokorin missed the best chance of a lifeless opening half, heading wide from six yards.
Substitute Kevin Mirallas hit a post with Belgium's first shot on target with six minutes remaining.
But Origi turned in from Eden Hazard's cross to take Marc Wilmots' team into the knock-out phase.
Russia's hopes of following them into the last 16 now hinge on their final group match against Algeria.
Fabio Capello's side were better than in their 1-1 draw with South Korea but still lacked a cutting edge and Belgium found a way to win despite an unconvincing display.
Origi, 19, impressed when he came off the bench in the opening 2-1 victory over Algeria and, once again, the Lille forward did well when he replaced Romelu Lukaku - who appeared far from happy with the decision - early in the second half.
They may have six points from two matches, but Belgium - who lost Arsenal defender Thomas Vermaelen to injury - will have to play far better to continue their progress.
Another player do well coming on against Algeria, Dries Mertens was given a starting place and carried all of Belgium's threat down the right flank in the first half.
The Napoli winger had an effort blocked after a fine run and, following Kevin de Bruyne's surge forward, he attempted to feed Romelu Lukaku rather than shooting from a good position.
Mertens drove wide of goal after another impressive break but other than that Russia were barely troubled in a slow opening half.
They went close themselves when Viktor Fayzluin's low effort was pushed away by Thibaut Courtois, who also made a scrambling stop from Maksim Kanunikov.
Kokorin should have opened the scoring just before the interval but he glanced a header wide at the far post from Denis Glushakov's fine cross.
Glushakov thumped a wild effort off target from a narrow angle as the second half started at an even lower tempo with both sides appearing content with a draw.
Andrey Eschenko dragged an effort wide after a decent Russian move, then Everton winger Mirallas was denied by the foot of a post.
Hazard drove wide after breaking into the area but the Chelsea forward made a more decisive contribution in the 88th minute, breaking down the left flank and pulling back for Origi to score.
Belgium manager Marc Wilmots:
"[Origi] is in a good space right now. He's 19 years old. It was a bit of a surprise since he was an unknown before I selected him. Now everyone knows who he is.
"It was a hard game because the Russians were expecting us - the players were tired, it was hot, the Russians were already cramping up after 60 minutes.
"It was not an easy match but I think we deserved to win it."
Russia manager Fabio Capello:
"I am very happy with the performance the team and I thought the result was unfair.
"The truth of the matter is we had chances to win it but we lost. Both teams gave it their all and unfortunately it was Belgium that was able to make it.
"We have to look forward and I said when we came to play in this World Cup after being absent for 12 years that this will be a great help for us to understand the level we need to be at in future competitions."
- 2AlderweireldBooked at 73mins
- 3VermaelenSubstituted forVertonghenat 31'minutes
- 15van Buyten
- 14MertensSubstituted forMirallasat 75'minutes
- 6WitselBooked at 54mins
- 9LukakuSubstituted forOrigiat 57'minutes
- 7De Bruyne
- 10E Hazard
- 21Vanden Borre
- 2KozlovSubstituted forEshchenkoat 62'minutes
- 8GlushakovBooked at 38mins
- 19SamedovSubstituted forKerzhakovat 90'minutes
- 17ShatovSubstituted forDzagoevat 83'minutes
- Dr. Felix Brych
- Shots on Target
Second Half ends, Belgium 1, Russia 0.
Corner, Belgium. Conceded by Sergei Ignashevitch.
Hand ball by Marouane Fellaini (Belgium).
Attempt saved. Kevin Mirallas (Belgium) right footed shot from the right side of the box is saved in the bottom right corner. Assisted by Eden Hazard.
Foul by Toby Alderweireld (Belgium).
Alan Dzagoev (Russia) wins a free kick in the defensive half.
Corner, Belgium. Conceded by Vassili Berezoutski.
Substitution, Russia. Alexander Kerzhakov replaces Aleksandr Samedov.
Foul by Marouane Fellaini (Belgium).
Viktor Faizulin (Russia) wins a free kick in the attacking half.
Goal! Belgium 1, Russia 0. Divock Origi (Belgium) right footed shot from the centre of the box to the high centre of the goal. Assisted by Eden Hazard.
Offside, Belgium. Marouane Fellaini tries a through ball, but Kevin De Bruyne is caught offside.
Attempt missed. Marouane Fellaini (Belgium) header from the centre of the box misses to the right. Assisted by Kevin De Bruyne with a cross following a corner.
Corner, Belgium. Conceded by Sergei Ignashevitch.
Attempt blocked. Eden Hazard (Belgium) right footed shot from the centre of the box is blocked. Assisted by Kevin Mirallas.
Kevin Mirallas (Belgium) hits the left post with a right footed shot from outside the box from a direct free kick.
Substitution, Russia. Alan Dzagoev replaces Oleg Shatov.
Hand ball by Maksim Kanunnikov (Russia).
Attempt missed. Andrey Eshchenko (Russia) right footed shot from the right side of the box is close, but misses to the left. Assisted by Oleg Shatov.