Belgium (15 points) failed to advance after finishing third in Group A.
Germany were top on 30 while second-placed Turkey (17) booked a play-off spot following their 1-0 win over Azerbaijan.
Mesut Ozil and Andre Schuerrle struck late in the first half and Mario Gomez added another goal just after the restart, dashing Belgium's hopes of recording their first victory against Germany since 1954.
Marouane Fellaini pulled a goal back for the visitors with a near-post header after 86 minutes.
Triple European champions Germany set a national record by improving on the eight wins out of eight they notched in qualifying for the 1982 World Cup.
"I think it was important to push through at the finish line and show the Germans do not let up even if they have qualified," coach Joachim Loew said.
"That was also a message to other teams out there, that we do not stop."
The hosts survived early pressure from Belgium but should have taken the lead when Gomez was denied by keeper Simon Mignolet from close range.
Ozil, who did not play against Turkey, opened the scoring when he rifled the ball in from 19 metres on the half hour.
Three minutes later Schuerrle, starting instead of Lukas Podolski, chipped Mignolet to notch his fifth goal in 10 international appearances after making a sizzling 60-metre sprint to connect with a Gomez pass.
Bundesliga top scorer Gomez then squandered a golden opportunity seconds before the break but the striker, who was also on target against Turkey, made amends three minutes into the second period after combining well with Ozil.
Fellaini's late consolation goal could not prevent Belgium losing to the Germans for the ninth consecutive time.
"The German team was too strong tonight," said Belgium coach Georges Leekens. "But you saw in the opening 20 minutes that little Belgium can also play football.
"I am proud of how my team played but we were missing some key players. Now our focus shifts to the 2014 World Cup."