The eighth-seeded Argentine, who squandered a two-set lead to compatriot Gaston Gaudio in last year's final, needed just one hour, 54 minutes to win through to the last 16.
Melzer had beaten 29th seed Mikhail Youzhny in the previous round but he was helpless as Coria blitzed to a two-set lead in less than an hour.
The Austrian put up better resistance in the third set but Coria maintained his concentration to win the tiebreak and set up a clash with 12th-seeded Russian Nikolay Davydenko.