Matt Holliday's three-run homer snapped a seventh inning tie, lifting Joel Pineiro to his eighth straight win and the St. Louis Cardinals to a 7-6 victory over the Milwaukee Brewers on Tuesday night.

Albert Pujols added his major league-leading 42nd homer for the Cardinals, who are a major-league best 26-9 since the July 24 trade with the Athletics for Holliday. They're 30-4 since July 1 in starts by their big three _ Adam Wainwright, Chris Carpenter and Pineiro.

Rookie Casey McGehee hit a three-run homer in the first and matched his career high with four RBIs for the Brewers, who entered a three-game series against the NL Central leaders with a three-game winning streak.

Skip Schumaker doubled off David Weathers (3-5) with one out in the seventh and Pujols was walked intentionally before Holliday drove Todd Coffey's first pitch an estimated 416 feet over the wall in left-center for his 20th homer and ninth in 35 games with St. Louis. Holliday is a career .406 hitter at 4-year-old Busch Stadium, with six homers and 16 RBIs.

The Cardinals have won Pineiro's last 11 starts and 12 of the last 13. Pineiro (14-9) escaped an early hole after only the seventh homer he's surrendered all season.

Pineiro allowed one more run in his final six innings, retiring 13 of 14 at one point. He helped himself by making the Brewers pound his sinker, striking out none for the third time this season but instead producing 16 groundouts that kept shortstop Brendan Ryan busy (10 assists).

Ryan Franklin, hours after signing a two-year contract extension, allowed two runs in the ninth before getting his NL-leading 37th save in 39 chances. J.J. Hardy, recalled from Triple-A Nashville earlier in the day, and Felipe Lopez each had an RBI.

Coffey has given up four homers in his last five outings covering 5 2-3 innings, including two in the 13th inning and the loss against the Reds on Aug. 26.

McGehee's 12th homer to straightaway center with two outs in the first gave the Brewers and Braden Looper a three-run cushion. The lead evaporated in the fourth when Pujols' 42nd leadoff homer was the first of four straight hits, with Colby Rasmus adding an RBI single and the tying run scoring on a doubleplay ball.

The Brewers singled three times in the sixth and took the lead on McGehee's single. St. Louis tied it in the bottom of the sixth on Ryan Ludwick's double and Yadier Molina's RBI single, both with two out.

Looper worked six innings for the fourth straight start, giving up four runs on eight hits.

NOTES: Cardinals RHP Todd Wellemeyer (elbow) had a poor start to an injury rehab assignment Monday with Triple-A Memphis, allowing four runs on three hits in two-thirds of an inning. ... The Cardinals activated Troy Glaus from the 60-day DL before the game. Glaus, out since shoulder surgery in January, was on deck as a pinch hitter in the eighth when the third was made.