STOCKHOLM: Spain needed an injury-time goal from Rodrigo to book their place at Euro 2020 with two matches to spare.
They fell behind to Sweden four minutes into the second half after Spain goalkeeper David De Gea made a double save to deny Berg and Emil Forsberg, only for the ball to loop up in the air for Berg to nod into an empty net.
Moments later De Gea had to pull off a sharp save down to his right to prevent Forsberg from doubling the lead.
But Spain’s problems deepened when De Gea, who had made a stunning save to deny Robin Quaison in the first half, limped off with what appeared to be a hamstring injury.
They looked on course for a first defeat of the campaign until substitute Rodrigo fired through a crowded penalty area at the death to clinch a 1-1 draw.
Sweden were left grateful to Alexander Sorloth, who scored a late equaliser for Norway in Romania.
The 1-1 draw means Romania stay a point behind the Swedes in third, while the Faroe Islands beat fellow Group F also-rans Malta 1-0.
Italy, already assured of qualification, took the lead in after just two minutes in Liechtenstein through Federico Bernardeschi.
But they had to wait until the 70th minute to find the net again through Andrea Belotti’s header before Alessio Romagnoli, Stephan El Shaarawy and Belotti again wrapped up a 5-0 win.
A late own-goal by Adnan Kovacevic dented Bosnia and Herzegovina’s chances of catching Finland as they went down 2-1 in Greece.
In Group G Israel beat whipping boys Latvia 3-1.
Norwich striker Teemu Pukki scored twice in a comfortable 3-0 victory over Armenia.
Pukki struck twice in the second half after Fredrik Jensen opened the scoring for the hosts, who are second behind Italy in Group J.
A Haris Seferovic strike and Shane Duffy’s own goal left the Republic of Ireland needing to beat Denmark to secure automatic qualification for the Euro 2020 finals as Switzerland got right back into the race.
Seferovic’s 16th-minute effort and Duffy’s misfortune at the death secured a 2-0 win for the home side at the Stade de Geneva on a night when skipper Seamus Coleman was sent off for two bookable offences.
Had it not been for keeper Darren Randolph, who saved Ricardo Rodriguez’s second-half penalty after denying Seferovic a second with a smart save, and the post which kept out a Fabian Schar header, the Swiss might have won much more comfortably with Ireland rarely looking like claiming the victory which would have booked their place at next summer’s finals.
The pitch had passed an inspection around two hours before kick-off after torrential rain throughout the day.
Even a first start for teenager Aaron Connolly did not provide the spark required as Mick McCarthy repeatedly tinkered with both his system and personnel in an ultimately vain battle for a foothold in the game.
Elsewhere in Group D, minnows Gibraltar came from 2-0 down to level against Georgia only to fall to Giorgi Kvilitaia’s late goal.