Top seed Christian Garin and second seed Fernando Verdasco were knocked out of the ATP Swedish Open on an action-packed Wednesday.
World number 37 Garin was no match for Jeremy Chardy in the upset of the day, the Frenchman winning 6-4, 6-4.
Chardy hit 12 aces in his triumph and won six of the last seven games in the second set to set up a meeting with Nicolas Jarry, who beat Mikael Ymer 7-5, 6-3.
Verdasco was also a surprise loser, failing to exact revenge for his 2016 Swedish Open final defeat to fellow Spaniard Albert Ramos-Vinolas.
Ramos-Vinolas won that 2016 final in Bastad 6-3, 6-4 and he nearly won by an identical score on Wednesday, posting a 6-2, 6-4 triumph in one hour and 46 minutes.
Key to the world number 99's win was saving eight of a possible nine break points.
Ramos-Vinolas will next play another Spaniard, Roberto Carballes Baena, who posted a 6-1, 7-6 (7-4) win over Damir Dzumhur.
READ | WTA Tour: Garcia stunned in Lausanne, Pliskova progresses
Also on Wednesday, Leonardo Mayer fought back impressively to defeat Jiri Vesely in three sets at the Croatia Open in Umag. In a match that lasted two hours and 12 minutes, Mayer won 3-6, 6-4, 6-4.
Attila Balazs was on court for even longer in Croatia, winning a tough encounter against sixth seed Filip Krajinovic 6-3, 6-7 (1-7), 7-6 (7-5).
Stefano Travaglia progressed in an all-Italian affair, after he won the first set against Fabio Fognini, who retired early in the second.
And in the late match in Croatia, Lazlo Djere edged Paolo Lorenzi 6-3, 3-6, 6-4.