Albert Pujols looked right at home at PNC Park, while Paul Maholm looked anything but comfortable in his home stadium. Pujols went 4 for 5 and homered for the second straight game – his 27th at the stadium, the most he has hit in a road park – to lead the St. Louis Cardinals past the Pittsburgh Pirates, 6-4 Friday. David Freese broke out of an extended slump with two hits, including a two-run homer, as St. Louis pulled into a virtual tie with the Pirates in the crowded National League Central standings. Chris Carpenter (6-7) gave up four runs in eight innings to win his fourth straight decision for the Cardinals. Fernando Salas pitched the ninth inning to collect his 18th save. Maholm (6-10) had won four straight games at home, but a sloppy first inning sent him to his first loss at the Pirates' ballpark in two months. Pujols has gotten off to a slow start since his return from the disabled list earlier this month, but he appears to be heating up. He hit a two-run shot in the first Thursday to spark the Cardinals past the Mets and wasted little time getting to work against Maholm, sending the first pitch he saw into the right-field seats to give the Cardinals a 2-0 lead. Garrett Jones had two hits and two runs batted in for the Pirates, who dropped their second straight game since Tuesday, when they rose into first place this late in the season for the first time since 1992. Braves 6, Reds 4: Dan Uggla's first career pinch-hit home run lifted Atlanta at Cincinnati. Phillies 3, Padres 1: Cole Hamels tossed eight dominant innings and Philadelphia beat San Diego for the eighth straight time. Hamels (12-5) tied Atlanta's Jair Jurrjens for the most wins in the NL. Ccubs 4, Astros 2: Aramis Ramirez and Alfonso Soriano hit fifth-inning homers as Chicago beat visiting Houston. Red Sox 7, Mariners 4: Jacoby Ellsbury continued his July power surge with his seventh home run of the month as Boston extended Seattle's losing streak to 13 with a win at home. Royals 10, Rays 4: Melky Cabrera had three hits and drove in three runs to help Kansas City defeat visiting Tampa Bay. Other results: Rangers 12, Blue Jays 2; Tigers 8, Twins 2; Angels 6, Orioles 1; White Sox 3, Indians 0.