The 20-year-old, who last year became the youngest player to reach the top 30 since 2005, put a four-match losing streak behind him as he beat the Spaniard 6-3 7-6(5).
France's 15th seed Gael Monfils lost 6-3 6-1 to Spanish qualifier Albert Ramos-Vinolas, in 61 minutes.
Fernando Verdasco produced a remarkable comeback to beat Britain's Kyle Edmund 4-6 6-4 6-2. After losing the first set and trailing 4-1 in the second, the Spaniard won 10 games out of the next 13 to claim the victory.
Italian Fabio Fognini continued his progress towards breaking into the world's top 10 with a 6-3 6-4 win over Jo-Wilfried Tsonga.
The 10th seed outmanoeuvred the Frenchman in baseline rallies to win in one hour and 23 minutes.