Portugal maintained top spot in the group A with one game to go despite drawing 0-0 with the Republic of Ireland on Thursday night.
The 2016 European champions did finish the game with 10 men though, as Pepe was given his marching orders on 81 minutes and will now miss Sunday's clash against second-place Serbia.
Spain moved to the top of Group B after defeating Greece 1-0 at the Olympiako Stadio Spyros Louis.
Pablo Sarabia's 26th minute penalty was enough to do the job on the night and put Luis Enrique's side in pole position ahead of their final game on Sunday.
Germany, who have already qualified for the World Cup, thrashed Liechtenstein 9-0 at the Volkswagen Arena.
The four-time world champions enjoyed a rampant first half where they got four goals through Ilkay Gündogan, Leroy Sane, Marco Reus and an own goal from Daniel Kaufmann.
Sane completed his brace four minutes after the halftime break, before Thomas Muller added his own brace before Radu Baku and another own goal from Maximilian Goppel rounded off the win.
Second-place Croatia kept themselves in touching distance of top spot in Group H with a 7-1 thrashing of Malta on Thursday evening.
Ivan Perisic, Duje Caleta-Car, Mario Pašalic and Luka Modric put the visitors 4-1 up in the first half, while the hosts got their goal via a Marcelo Brozovic own goal.
Lovro Majer added a brace in the second half and Andrej Kramaric also got on target to complete the route.
Azerbaijan 1-3 Luxembourg
Georgia 2-0 Sweden
Russia 6-0 Cyprus
Armenia 0-5 North Macedonia
Slovakia 2-2 Slovenia
Romania 0-0 Iceland