Leicester City goalkeeper Schmeichel pulled off superb stops to deny Granit Xhaka, Admir Mehmedi and Ricardo Rodriguez before Yussuf Poulsen grabbed an 84th-minute winner for Denmark in Copenhagen.
The Danes moved up to 12 points alongside group leaders Ireland, who drew 0-0 away to Georgia, while Switzerland are four points off the pace but with a game in hand.
Mick McCarthy's Ireland couldn't establish any momentum earlier in the day in Tbilisi and were left frustrated by wayward finishing from their few opportunities to break the deadlock.
Romania took over second place in Group F following a 3-0 win in the Faroe Islands secured by second-half goals from George Puscas, Ionut Mitrita and Claudiu Keseru.
Sweden could move back above Romania with victory in Malta later although defeat would open the door for three-time European champions Spain to secure qualification with a win away to Norway.
Italy, who have six wins from six in Group J, can clinch their place at the finals with victory over Greece in Rome.
Bosnia and Herzegovina reignited their qualification hopes with a 4-1 win over second-placed Finland.
A brace from Juventus midfielder Miralem Pjanic and goals from Izet Hajrovic and Armin Hodzic pushed Bosnia to within two points of Finland, who could be joined by Armenia if they beat Liechtenstein in Vaduz.