The Spaniard, 29, won 7-6 (7-3) 6-4 to set up a quarter-final against American Jack Sock on Friday.
Second seed Tomas Berdych lost 6-4 6-4 to Pablo Cuevas, while top seed Novak Djokovic plays Ze Zhang on Thursday.
"Obviously I improved from yesterday," said Nadal, who lost serve four times against China's Wu Di in round one.