Spain were on the wrong end of a shock Nations League defeat in Ukraine, while their Group A4 rivals Germany drew a six-goal thriller with Switzerland.
Luis Enrique's Spain side 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, occurring almost a year to the day after a similarly jubilant win against Portugal in the European Qualifiers last year.
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.
It is the first goal Ukraine have scored against Spain in 17 years - now-coach Shevchenko the last man to do so - with the hosts recording their first competitive international victory against the former World Cup winners.
Enrique's side have also lost their first game in just under two years, last losing back-to-back games against England and Croatia in the 2018 Nations League.
Switzerland roared out of the traps in their 3-3 draw against Germany 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.
In Group C1, Luxembourg moved level with opponents Montenegro on nine points as they won 2-1 in Podgorica.
Igor Ivanovic put Montenegro in front before Edvin Muratovic and Daniel Sinani completed the turnaround. A late scuffle in injury-time resulted in three red cards, with Marko Jankovic, Marko Simic and Olivier Thill all dismissed.
Azerbaijan and Cyprus shared a goalless draw. Qara Garayev missed a first-half penalty for the hosts, allowing Cyprus their first point of the competition.
In D1, Malta recorded their first away win in more than seven years as Steve Borg sealed victory over Latvia seven minutes into added time.
There were chances aplenty in Riga, with Davis Ikaunieks missing while clean through in the first half, but a stalemate looked to be on the cards.
Stephen Pisani's free-kick represented the last chance for a result and Borg managed to nod it home for a long-awaited success, Malta's first in the Nations League.
The Faroe Islands remain five points clear of Malta after a 2-0 win over Andorra, Klaemint Olsen netting both goals. In D2, San Marino drew 0-0 in Liechtenstein.