ST. PETERSBURG, Fla. -- Adam Wainwright's self-evaluation was brutal.

"I had little command of my breaking ball, and my fastball had little jump to it," the St. Louis Cardinals ace said. "Sub-par to average stuff. Today I just tried to move it around."

Wainwright did that well enough Tuesday, pitching seven shutout innings and becoming the first National League pitcher to win nine games this season as the St. Louis Cardinals sent the Tampa Bay Rays to their third straight shutout loss, 1-0, at Tropicana Field.

"You've just got to battle," Wainwright said, "figure out ways to get outs."

Wainwright helped St. Louis (34-31) win by shutout for the third consecutive game. The Rays (24-42) lost their 14th of 15, their worst 15-game stretch in seven seasons. Tampa Bay is the first American League team to be shut out three games in a row since 2004.

St. Louis managed just three hits, but designated hitter Matt Holiday's fourth homer of the year, in the sixth inning off Rays starter Jake Odorizzi, was the difference.

Wainwright (9-3) was hardly dominating, allowing seven hits and two walks and striking out just two. He went at least seven innings without allowing a run for the seventh time in 14 starts this season. He fought, he fiddled, he invented new pitches.

"Adam came out and just figured out ways to get outs," Cardinals manager Mike Matheny said. "He's trying to figure it out each inning. He was making a little bigger cutter, almost a slider. I don't know where that came from."

The offensively anemic Rays couldn't figure out Wainwright, too, extending their scoreless streak to a club-record 28 innings.

Tampa Bay squandered a chance to tie the game in the eighth after Wainwright exited. Three St. Louis relievers combined to keep the Rays scoreless even after right fielder Kevin Kiermaier led off with a double and two batters were hit by pitches to load the bases.

Right-hander Trevor Rosenthal induced an inning-ending popup from left fielder Matt Joyce, and he worked the ninth for his 17th save.

"We're just proverbially snake-bit right now," Rays manager Joe Maddon said. "We just can't find some grass when we need to under those circumstances."

Odorizzi (2-7) limited the Cardinals to one run on three hits and one walk in a career-high 7 1/3 innings. He struck out five.

"One mistake by me and, you know, we get beat," Odorizzi said. "Without that bad pitch, I think it would have been a 0-0 game going as long as it would have gone."

Tampa Bay, which was shut out in the final two games of a three-game sweep by the Seattle Mariners, could not exploit an unusually balky first few innings by Wainwright, leaving the bases loaded in the fourth inning.

A one-out single by first baseman James Loney and double by shortstop Ben Zobrist began the potential rally, but after a David DeJesus lineout and intentional walk to Joyce, Wainwright retired second baseman Logan Forsythe to end the inning.

Wainwright worked out of trouble in the first and fifth innings with double plays.

NOTES: The Rays signed 21-year-old 1B Casey Gillaspie, who was selected 20th overall in the draft Thursday. The Wichita State switch hitter batted .389, tied for fifth nationally with 15 home runs and led the nation with 58 walks in 59 walks in his just-completed junior season. ... The Cardinals' Matt Holliday returned to the lineup at DH on Tuesday after being sidelined by back stiffness Sunday. St. Louis 2B Kolten Wong (shoulder injury sustained Friday) and C Yadier Molina ("mental break" since Saturday) also returned, but both went hitless Tuesday. ... Rays RHP Alex Cobb, struck in the head by a line drive nearly a year ago, became a spokesman for IsoBlox protective headgear, which is currently being marketed to children but not yet available for major league players.