Jake Westbrook tossed his first complete game in over two years to lead the St. Louis Cardinals past the Detroit Tigers, 3-1, in the second test of a three-game interleague series at Comerica Park.

Westbrook (6-6) allowed one unearned run on five hits and a walk while striking out five to record the 14th complete game of his career, but the first since May 16, 2010 as a member of the Cleveland Indians.

"To give the bullpen a rest and go out there and finish the game is always nice," Westbrook said.

Matt Holliday and Carlos Beltran each had two hits and a run scored as the Cardinals snapped a two-game slide.

Rick Porcello (4-5) took the loss despite scattering 10 hits, a walk and two runs over seven full frames.

Austin Jackson knocked in the lone run for Detroit, which saw its three-game win streak come to an end.

Detroit broke the scoreless contest in the third inning. Gerald Laird lifted a ball into shallow right field that Cardinals second baseman Daniel Descalso kicked towards the seats after it fell to the ground, allowing Laird to advance to second. Jackson followed with a double into the right-field corner to plate Laird, but was later stranded on third.

St. Louis answered with a run in the fifth inning when David Freese singled, moved to third on a Matt Adams base hit and crossed the plate on Descalso's sacrifice fly to left field.

Adams moved to second on the play and tried to score on Skip Schumaker's two- out single to left field, but Adams stumbled as he rounded third and Quintin Berry's throw to the plate was well ahead of Adams, allowing Laird to apply the tag to keep it a 1-1 game.

The Tigers left a man on second in the home fifth before the Cardinals took the lead in the sixth after loading the bases with no outs on a double by Holliday, a Beltran walk and Allen Craig's single.

St. Louis would only get one run out of it on Yadier Molina's double-play groundout to short, though, as Brennan Boesch grabbed a sinking liner to right off the bat of Freese to end the inning.

The Cardinals then added an insurance run in the eighth inning thanks to a pair of miscues by Detroit. Beltran reached base with a one-out walk off Brayan Villarreal and was awarded second on a balk during a Craig at-bat. Craig would eventually strike out before Molina hit a liner to short that Jhonny Peralta had deflect off his glove and into center field, allowing Beltran to cross the plate on the error.

After Delmon Young's two-out double in the sixth inning, Westbrook retired the final 10 batters he faced.

"I just tip my hat to Westbrook," Tigers manager Jim Leyland said. "He had a great sinker and then he went to a cutter and a few breaking balls later in the game. He's a smart veteran."

Game Notes

Laird left the game in the fifth inning with a leg hamstring injury suffered while running the bases...Westbrook improved to 7-8 in 24 career games -- 21 starts -- against the Tigers...Porcello is 1-1 in two career starts against the Cardinals...Beltran extended his hit streak to 12 games...Tigers third baseman Miguel Cabrera went 0-for-4 and snapped a streak of four straight games with an RBI...Detroit leads the all-time series between the teams, 18-10.