Scherzer (10-4), who missed the previous 15 days with a left oblique injury, struck out nine while throwing only 68 pitches.
In his 86-pitch start, Garcia (13-8) used his quirky, rocking windup to hold the Rays to just two hits.
Alex Bregman finished 2-for-4 with a two-RBI double as the Astros breezed to their eighth win in the past nine games.
Over six innings, Rays starter Drew Rasmussen (10-6) allowed four runs on six hits.
Edward Cabrera (6-3) earned the win, allowing three hits and three runs in five innings.