Substitute Giampaolo Pazzini scored late on as Italy beat Slovenia 1-0 to seal their passage to Euro 2012.
While Spain enjoyed a comfortable 6-0 win against Liechtenstein to join Germany in Poland and Ukraine. The Netherlands maintained their 100% record in Group E by defeating Finland 2-0 to secure their place, though they need a point to win the group.
Goals from Kevin Strootman and Luuk de Jong made it eight wins from eight.
In Group D, Bosnia-Hercegovina beat Belarus 1-0 to close the gap on France at the top to a point after Les Bleus drew 0-0 in Romania.Sunderland's Nicklas Bendtner scored twice for Denmark as they defeated Norway 2-0 to rise to second in Group H.
They now join their Scandinavian neighbours and Portugal on 13 points with a game in hand on the Norwegians.Elsewhere, Croatia overtook Greece at the top of Group F after they beat Israel 3-1. Greece could only manage a 1-1 draw in Latvia.In Group G, where England edged past Wale 1-0, Switzerland beat Bulgaria 3-1.