Top seed Christian Garin and second seed Fernando Verdasco were knocked out of the 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.
In a repeat of the 2016 Bastad final, @albertramos88 defeats Verdasco @swedish_open | #SwedishOpen
— ATP Tour (@ATP_Tour) July 17, 2019
Ramos-Vinolas will next play another Spaniard, Roberto Carballes Baena, who posted a 6-1 7-6 (7-4) win over Damir Dzumhur.
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.
Top Headlines
Featured Matches
Football
Arsenal
English Premier League
2-0
Brighton and Hove Albion
Aston Villa
English Premier League
2-0
Chelsea
Fulham
English Premier League
0-1
Newcastle United
Leeds United
English Premier League
2-0
West Bromwich Albion
Leicester City
English Premier League
2-1
Tottenham Hotspur
Manchester City
English Premier League
2-0
Everton
Liverpool
English Premier League
1-0
Crystal Palace
Cricket
Sussex
Sri Lanka
Teams will be announced at the toss
Multan Sul..
Quetta Gla..
Teams will be announced at the toss
Islamabad..
Karachi Ki..
Teams will be announced at the toss
Peshawar Z..
Lahore Qal..
Teams will be announced at the toss
Islamabad..
Quetta Gla..
Teams will be announced at the toss
Lahore Qal..
Islamabad..
Teams will be announced at the toss
Mumbai Ind..
Delhi Capi..
Teams will be announced at the toss