Switzerland revived their hopes of qualifying directly for Euro 2020 and denied Ireland the chance to book their place in the tournament with a nervous 2-0 win, which threw their group wide open in rain-soaked Geneva on Tuesday.
Haris Seferovic gave Switzerland a 16th-minute lead with a shot out of the blue in the Group D game and Shane Duffy turned Edimilson Fernandes' shot into his own net to wrap up the win in the third minute of stoppage time.
Switzerland could have sealed victory earlier but Ricardo Rodriguez saw his tame penalty pushed onto the post by Darren Randolph after Seamus Coleman handled and was sent off for a second bookable offence.
Ireland and Denmark have 12 points with the Swiss one behind. Ireland have only one match left, at home to Denmark, while the Danes and Swiss have two apiece. Switzerland have a much easier run-in as they host Georgia and visit Gibraltar in their final games.
Switzerland took early control and Seferovic picked up a loose ball outside the penalty area and scored with a snapshot beyond Darren Randolph to put them ahead.
Ireland had to wait 42 minutes for their first effort on target, a Duffy header from a corner which went straight to keeper Yann Sommer.
Seferovic fired wildly over from a good position before halftime and, as the hosts became edgy, Ireland enjoyed a long period of pressure early in the second half without seriously threatening Sommer's goal.
After Randolph turned a Fabian Schar header onto the post, Switzerland won a penalty when Seamus Coleman blocked Breel Embolo's shot with his hand and was sent off for a second bookable offence.
Yet Rodriguez's weak penalty from a stuttering run up was pushed onto the post by Randolph.
Switzerland finally settled matters with the last kick of the game courtesy of Duffy, who slid Edimilson Fernandes' shot into his own net.