The defeat was Houston's fourth in a row and its sixth loss in the past seven games as the Astros were shut out for the first time since a 2-0 loss at Seattle on June 11.
"It's one of those nights you just chalk up and say we didn't play well and move on," said Houston manager Bo Porter. "There's not too much to dwell on. Not too many good things happened."
The Rays were relentless from the outset but stranded five runners in the first two innings. Keuchel battled command issues while just missing the corners of the plate all game, so he couldn't hold off the Rays for long.
They finally broke through in the third when James Loney, who struck out to leave the bases loaded in the first, put a run on the board with a sacrifice fly.
Ryan Roberts lined Keuchel's next pitch, a hanging curveball on the outside corner, into the left-field bleachers for a 3-0 lead. Starting with that two-run shot, eight consecutive Tampa Bay runs came with two outs.
"It just basically boils down to not making pitches with two outs," Keuchel said. "Today was just one of those games where I couldn't get that one pitch to get out of it."
A walk and a trio of Rays singles in the fifth plated two more runs and finally chased Keuchel, who threw 108 pitches over 4 2/3 innings. He was also one strike away from escaping that fifth inning.
With two off-days last week, the Astros skipped Keuchel's spot in the rotation, a curious decision given Keuchel's 2.59 ERA over his previous handful of starts.
He pitched 2 2/3 innings in relief against the Cardinals on June 25, and Porter didn't believe the down time affected Keuchel on Monday.
"I don't think there was [any effect]," Porter said. "He got in a game and threw a normal bullpen like he would. His arm stayed loose."
Walks plagued Keuchel, as he issued five free passes -- as many as he'd walked in his previous six outings combined. It was the first time in eight starts that Keuchel didn't pitch at least six innings.
"I can't walk guys and expect to come out of there unscathed and that's what happened tonight," Keuchel said. "I'd been on a good roll with no walks and attacking guys. Something wasn't clicking from the first batter tonight."
The floodgates opened after his exit, with the bullpen unable to stop the barrage. Paul Clemens and Hector Ambriz combined to surrender four two-out runs in the seventh that put the game well out of reach.
Roberts added a towering solo shot in the eighth, wrapping up a 3-for-5 night in which he had three RBIs and scored three runs. Rays utility man Sean Rodriguez added three more RBIs with a 4-for-6 night.
"It's just a tough, frustrating game, watching them score runs and being on the defense all day," Chris Carter said. "It's hard to watch that happen."
The Houston offense was even less noteworthy than the pitching, going down in order during five innings while hitting into a pair of double plays. The Astros managed only two hits in the game, as Tampa lefty Matt Moore baffled them to the tune of nine strikeouts over seven innings.
Porter expressed frustration with Houston hitters for veering away from the strategy against Moore.
"Coming in, we had a game plan to make him throw strikes and his walk total was high early on," Porter said. "His pitch count started to get up there and then it looked like we got impatient and started helping him out."
Moore won his 11th game of the season, and the outing tied the longest scoreless start of his career.
"Being on the same page with [catcher Jose Lobaton] was great tonight," Moore said. "It just makes the tempo and the rhythm that much better. It makes it that much tougher on the hitter as well."
The closest Houston came to a run was in the fourth, when Jason Castro walked and Carter moved him to third on a single with no outs. But J.D. Martinez's strikeout kept the double play in order and Matt Dominguez obliged with a ground ball to end the frame.
The performance was the culmination of a week of dwindling offensive production for the Astros, who have now scored nine runs over their past five games.