Second seed Federer clinched a 6-4, 6-4, 6-7 (5/7), 6-2 victory over the world number 69 who fired a 147mph ace in the third game.
Federer will next face Spanish 20th seed Roberto Bautista Agut for a place in the quarter-finals.