Ukraine manager Andriy Shevchenko embraces Illia Zabarnyl after victory over Spain
Spain remain top by a point as a result, but they left Kiev with nothing after Viktor Tsygankov came off the bench to hand Ukraine a 1-0 victory.
Andriy Shevchenko set the hosts up to defend and stifle their visitors and they successfully held their clean sheet, allowing Tsygankov to secure the points.
He did so in the 76th minute, breaking straight between the central defenders to collect Andriy Yarmolenko’s precise pass and fire past David de Gea.
Switzerland roared out of the traps in their 3-3 draw in Cologne, taking the lead after five minutes when Mario Gavranovic headed smartly over Manuel Neuer to cap a spell of early pressure.
Remo Freuler made it two after 26 minutes when he got on the end of Haris Seferovic’s cross and cleverly lifted a delicate finish over Neuer and the back-tracking Antonio Rudiger.
Chelsea pair Timo Werner and Kai Havertz shot back in either half to leave the scores tied before Gavranovic’s second restored the lead.
It fell to Serge Gnabry to close out the scoring on the hour, improving a flick off the instep to convert a Werner cutback, before Switzerland finished with 10 men following Fabian Schar’s late red card.
Elsewhere on Tuesday
In Group C1, Luxembourg moved level with opponents Montenegro on nine points as they won 2-1 in Podgorica. Azerbaijan and Cyprus shared a goalless draw.
Malta recorded their first away win in more than seven years to beat Latvia 1-0 in Group D1. The Faroe Islands remain five points clear at the top of the group after a 2-0 win over Andorra.
In Group D2, San Marino drew 0-0 in Liechtenstein.