Cole Hamels had another outstanding outing, and the Philadelphia Phillies took advantage of an error by Jason Heyward to beat the Atlanta Braves 3-1 on Monday night, increasing their lead in the NL East to four games.

The two-time NL champion Phillies won their eighth straight game and improved to 42-15 since July 21, when they trailed the Braves by seven games.

Hamels (12-10) allowed one run and six hits, striking out six in eight innings to win his fifth straight start — a career-best. Brad Lidge finished for his 24th save in 29 chances.

Brandon Beachy (0-1) gave up three runs — one earned — and four hits in 4 1-3 innings in his major league debut. He was a late fill-in for Jair Jurrjens, who is still nursing a sore right knee.

The 24-year-old right-hander was at the Braves' instructional league program in Florida when he got the call to join the team.

A crowd of 45,256 was the 118th straight sellout at Citizens Bank Park. A fan wearing a red spandex costume and mask ran onto the field and briefly eluded security guards during the seventh inning before Braves left fielder Matt Diaz helped tackle him.

The Phillies adjusted their rotation so their three aces would pitch this series. Next up are Roy Halladay and Roy Oswalt.

Hamels did his job. The 2008 World Series MVP is pitching better than he did when he led Philadelphia to its second championship two years ago.

Despite a slew of injuries this season, the Phillies are primed to win their fourth straight division title and are trying to become the first NL team in 66 years to capture three consecutive pennants.

Shane Victorino led off Philadelphia's fifth with a hard liner to right-center. He hustled into third after the ball glanced off Heyward's glove. Heyward made a long run and seemingly had trouble with the wind or the curve of the ball, but it was ruled an error.

Placido Polanco's RBI grounder to shortstop drove in Victorino with the go-ahead run.

Chase Utley followed with a single. He stole second and advanced to third on catcher Brian McCann's throwing error. Eric O'Flaherty entered and walked Ryan Howard and Jayson Werth to load the bases. Raul Ibanez grounded out to shortstop to score Utley for a 3-1 lead.

The Braves went ahead 1-0 in the second on McCann's RBI double. Derrek Lee singled and scored on McCann's shot off the scoreboard in right. After Diaz singled, Hamels pitched out of the jam. He struck out Alex Gonzalez and got Melky Cabrera to ground into a double play.

The Phillies answered in the bottom half. Howard led off with a double. Two outs later, Carlos Ruiz lined a double to left to tie it at 1. The crowd chanted "Choooch" as Ruiz jogged into second with another clutch hit. The catcher leads the team with a .299 batting average. Ruiz entered the season with a .246 career average, but he has a knack for coming through in big games. Ruiz hit .349 in the NLCS and World Series over the last two years.

Hamels has an 0.49 ERA in his last five starts, and a career-low 2.93 ERA this season. Hamels would have a better record with some more run support. He allowed two earned runs or less in five of his losses.

Notes: The Braves recalled 3B Brandon Hicks from Gwinnett and placed him on the 60-day DL to make room on the 40-man roster for Beachy. ... Beachy was 5-1 with a 1.73 ERA as a starter and reliever for Triple-A Gwinnett and Double-A Mississippi. ... Lidge has saved 14 of his last 15 chances.