PHILADELPHIA: Cliff Lee tossed a two-hitter and had two hits and an RBI, helping the Philadelphia Phillies beat the Florida Marlins 3-0 to complete a four-game sweep and win their seventh in a row in the National League Thursday. Lee (7-5) didn't allow a hit until Mike Stanton grounded a single to center with two outs in the fifth. He struck out four to record his seventh career shutout and second this season. Ryan Howard homered for the NL East-leading Phillies, who improved their major league-best record to 44-26. The struggling Marlins have lost 15 of 16. Florida's Javier Vazquez (3-7) allowed two runs and eight hits in five innings. Diamondbacks 3, Giants 2, 10 innings: At Phoenix, Justin Upton homered on the first pitch he saw in the 10th inning as Arizona avoided a sweep at the hands of San Francisco. Upton's opposite-field home run off Santiago Casilla (0-1) was his first career “walk-off” homer and the first home run given up by Casilla this season. Ian Kennedy gave up only an unearned run on four hits and struck out 10 with one walk over eight innings to stake the Diamondbacks to a 2-1 lead. But Pat Burrell's RBI sacrifice fly in the ninth tied it as J.J. Putz, struggling lately after an outstanding start to the season, blew his third save in 21 opportunities. Chris Young homered for Arizona for the second night in a row. Cubs 12, Brewers 7: At Chicago, Kosuke Fukudome had three hits and broke it open with a three-run homer, and Alfonso Soriano and Carlos Pena also went deep for Chicago. Fukudome singled and scored in the first, hit an RBI triple and scored in the second, and delivered the big blow in the sixth when he connected off reliever Daniel Herrera. Pena put Chicago ahead 6-5 with a leadoff homer against Zack Greinke in the third. Soriano added a two-run shot in the seventh and Starlin Castro had three hits for the Cubs. Greinke (6-2) allowed a season-high eight runs and eight hits in 5 1-3 innings and took his first loss since his debut against Atlanta on May 4 — despite striking out 10. Pirates 5, Astros 4: At Houston, Garrett Jones hit a three-run homer in the first inning and Pittsburgh added two runs in the sixth to regain the lead and hold on for its fourth straight win. The win also gives the Pirates their first three-game sweep of the season. Nationals 7, Cardinals 4, 10 innings: At Washington, Danny Espinosa's three-run homer in the bottom of the 10th inning gave Washington its sixth straight win. Braves 9, Mets 8, 10 innings: At Atlanta, D.J. Carrasco's balk in the 10th inning gave Atlanta the win over New York.