Ryan Howard and Pedro Feliz hit solo homers in the eighth inning and Philadelphia ended a four-game losing streak with a 4-2 victory over St. Louis on Wednesday night. Howard drove an 0-2 pitch from Kyle McClellan (1-4) for his 25th homer, rallying the Phillies after they blew a 2-0 lead. Feliz added his shot off Chris Perez. Brad Lidge retired Albert Pujols on a fly ball and struck out Rick Ankiel with two on to earn his 20th save. Howard tied All-Star teammate Chase Utley for the NL home run lead. Howard's 80 RBIs lead the league, and he set a team record for most RBIs before the All-Star break. Jimmy Rollins and Howard each drove in a run in the fifth, ending Philadelphia's scoreless streak at 16 innings. Pujols had a sacrifice fly and Troy Glaus snapped an 0-for-21 skid with a two-out RBI single in the seventh to tie the game at 2. Mets 5, Giants 0: At New York, Johan Santana tossed five effective innings before his night was cut short by a rain delay, but the Mets won their fifth straight. Ramon Castro had a three-run homer, and Carlos Delgado had three hits and is batting .429 (15-for-35) in nine games this month.The Giants have lost four of five and were shut out for the second straight game. Santana (8-7) was 0-4 despite a 2.48 ERA in his previous six starts. He allowed three hits, walked three and struck out five in his shortest outing since he went three innings in his final start for Minnesota, a 9-4 loss at Detroit on Sept. 26. Santana, Aaron Heilman, Duaner Sanchez and Joe Smith combined to retire San Francisco's last 13 batters and finish the Mets' first consecutive shutouts since Sept. 6-7, 2006. Dodgers 2, Braves 1: At Los Angeles, Derek Lowe took a perfect game into the seventh inning and Matt Kemp homered for the home team. Lowe retired the first 18 batters before Gregor Blanco led off the seventh with a clean single to center. Jonathan Broxton replaced Lowe (7-8) after Jeff Francoeur homered in the eighth. Takashi Saito pitched a perfect ninth to earn his 17th save. Atlanta's Tim Hudson (9-7) did not permit a runner until James Loney's leadoff double in the fifth. Lowe (7-8) gave up one run, walked two and struck out four in 7 2-3 innings. Hudson allowed two runs and four hits in seven innings. Kemp homered to center with two outs in the sixth. Andruw Jones singled home a run in the seventh for a 2-0 lead. Cubs 5, Reds 1: At Chicago, Carlos Zambrano allowed one hit over eight innings - a second-inning homer by Adam Dunn - and retired the final 20 batters for Chicago. In his second start since coming off the disabled list. Rockies 8, Brewers 3: At Milwaukee, Garrett Atkins hit two homers for Colorado and Glendon Rusch won as a starter for the first time in exactly two years. Rusch (2-3) had not won as a starter since beating the Brewers on July 9, 2006, in his last start for the Chicago Cubs. Nationals 5, Diamondbacks 0: At Washington, Jesus Flores' three-run, pinch-hit homer in the sixth inning ended the Nationals' six-game losing streak. Marlins 5, Padres 2: At San Diego, Scott Olsen allowed four hits over eight innings, and Mike Jacobs and Hanley Ramirez homered for Florida. Astros 6, Pirates 4: At Pittsburgh, Geoff Blum hit a three-run homer in the first inning and Houston avoided a three-game sweep.