John Lackey worked seven scoreless innings and the St. Louis Cardinals got just enough against Mike Bolsinger to beat the Los Angeles Dodgers 3-0 for their fifth straight victory on Friday night.

The Cardinals ended Bolsinger's streak of 18 2/3 consecutive scoreless innings on Randal Grichuk's bases-loaded double play ball in the first. Jhonny Peralta doubled twice with an RBI and Grichuk, starting in left field in place of ailing Matt Holliday, batted cleanup for the first time and had an RBI double in the third.

The Dodgers have been shut out four straight times on the road, also getting outscored 10-0 in a three-game sweep at San Francisco May 19-21. Jimmy Rollins and Justin Turner had two hits apiece.

Lackey (3-3) struck out nine and allowed five hits, and the Dodgers got their lone runner in scoring position his final inning. Adrian Gonzalez and Justin Turner singled to open the seventh but Lackey retired the next three in order with two strikeouts.

Lackey is 6-3 with a 1.76 ERA against the Dodgers and beat them in Game 3 of the NL division series last fall.

Manager Don Mattingly was ejected for the third time this season for arguing a called third strike on Andre Ethier for the first out of the seventh inning. Catcher A.J. Ellis struck out all three at-bats and was ejected for the first time of his career for arguing ball four to Matt Carpenter in the bottom half with J.P. Howell pitching.

Bolsinger (3-1) gave up two runs on seven hits in six innings. He had won his previous three starts and allowed just one base runner in eight scoreless innings his last time out against San Diego, giving up a leadoff hit and then retiring 23 in a row.

Trevor Rosenthal earned his 14th save in 15 chances for St. Louis, which entered with a major league-best 2.76 ERA.