The Phillies weren’t over .500 in any of the first three months of the season, but they’ve started July strong, going 6-2 in their first eight games. Last night they topped the Nats 4-2 behind eight great innings from Cole Hamels.

In 2012, the Phillies went 34-22 in August and September combined and finished the year at 81-81.

The Phils are going to need a well-rounded effort the rest of the way if they’re going to contend for a playoff spot in 2013, but the starting pitching has done most of the work in their current three-game winning streak. Over the last three games, their starters have allowed two earned runs over 21 1/3 innings (0.84 ERA and an 0.89 ratio). That’s good enough to get you some wins even if your offense is pretty uninspired and your bullpen is downright terrible.

There might not be a lot of hope for the bullpen, but it is important to recognize that the offense has improved of late. The Phils have scored at least three runs in each of their eight July games and are averaging 4.63 runs a game so far in July. There’s only one NL team that’s averaged 4.63 runs or better for the season — St Louis has scored an average of 5.0 runs per game and Colorado is second in the league at 4.55. The bad news is that the Phillies aren’t the only NL team whose offense has picked up in July. Their 4.63 runs per game for July is just sixth best in the NL.

The Phillies are 45-46 on the year after beating the Washington Nationals 4-2 last night. They’ve won three in a row and are 6-2 over their last eight.

Hamels got the start for the Phillies and went eight innings, allowing a run on six hits and a walk. One of the hits went for extra-bases, a solo home run. He struck out four.

The Phillies went 2-14 in the first 16 games that Hamels started this season, but are 3-0 his last three times out. In his last two starts he’s allowed two earned runs in 15 innings (1.20 ERA with an 0.80 ratio).

Scott Hairston led off the top of the first with a single into center, but Hamels got Ian Desmond to ground into a double-play behind him. Bryce Harper struck out looking 1-2 for the third out.

With one out in the second, Werth reached out over the plate for a 1-1 pitch from Hamels and hit it out to left, putting the Nats up 1-0. Hamels got the next two.

He hit Kurt Suzuki with an 0-2 pitch to start the third and the pitcher Taylor Jordan bunted Suzuki to second with the first out. Hamels struck Hairston out looking for the second out and got Desmond on a fly ball to right to leave Suzuki at second.

He threw a 1-2-3 fourth.

The game was tied at 1-1 when he started the fifth. He got the first two before hitting Suzuki again 0-2. Jordan lined to right to end the frame.

Hamels hits Suzuki twice in the first five innings of the game. He hadn’t hit more than one batter in a start since September 14, 2010.

He threw a 1-2-3 sixth.

The Phils led 4-1 when he started the seventh. Adam LaRoche singled to right with one out and moved up to second on an infield single by Anthony Rendon. It put men on first and second with two down for Suzuki and Suzuki flew to center to leave both runners stranded.

Werth homered with one out in the second. LaRoche and Rendon hit back-to-back singles with two outs in the seventh. In between, Hamels faced 18 batters and the only two times the hitter reached base were the two times he hit Suzuki.

Hamels started the eighth having thrown 87 pitches with the Phils still up by three runs. Hairston reached on an infield single with one out and moved up to second when Desmond singled into center. Hamels walked Harper on a 3-2 pitch, loading the bases for Ryan Zimmerman with one out. Hamels struck Zimmerman out swinging 0-2 for the second out. Werth was next. Hamels delivered a 2-2 fastball that was way up and away before Werth pounded the 3-2 pitch to center. Revere took it on the edge of the track to leave the bases loaded.

Hamels had thrown 103 pitches when Werth’s at-bat started. I think it’s pretty nuts to let him pitch to Werth as the go-ahead run there, but it worked out for the Phillies that time.

Huge Zimmerman at-bat ahead of the Werth at-bat and Hamels strikes him out swinging 0-2 with one out and the bases loaded.

Bastardo started the ninth with the overused Papelbon unavailable to pitch after throwing in four of the last five days. Bastardo got LaRoche on a fly ball to right for the first out before walking Rendon 3-2. Suzuki struck out swinging for the second out before righty Wilson Ramos hit for the pitcher Ian Krol and doubled off the base of the wall in right. Rendon scored, making it 4-2 with two down and Ramos on second. Bastardo got Hairston to pop to Utley to end the game.

Bastardo earns his second save of the season and the eleventh of his career. Faces five batters, allows a walk and a double and gets three outs. He’s walked 17 in 31 1/3 innings for the year. For his career he has walked 11.1% of the right-handed batters he has faced and 11.2% of the left-handed batters he has faced.

The Phillie lineup against righty Taylor Jordan went (1) Revere (2) Rollins (3) Utley (4) Brown (5) Michael Young (6) Delmon Young (7) Ruf (8) Ruiz. Revere and Rollins again hit one-two in the order after a nice performance in game one of the set. Ruf at first against the righty with Howard out.

Revere singled to center to start the bottom of the first, but Rollins grounded into a double-play behind him. Utley flew to right to set the Phillies down.

The Phils were down 1-0 when they hit in the second. Michael Young walked with one out, but Delmon Young grounded into a double-play behind him.

Third walk for Michael Young in the last three games. 4-for-his-last-8 with three walks, a double and a .636 on-base percentage.

Second time in two innings the Phils ground into a double-play.

The Phillies went in order in the third.

Utley doubled to center with two outs in the fourth. Brown was next and lined a ball into right that was short-hopped by a charging Werth. Werth threw home with the ball and Utley arriving at about the same time, but Suzuki didn’t handle the ball. Utley slid past the base, Suzuki tagged him and Utley was called safe. Brown was headed for second, so as soon as Suzuki tagged Utley, Suzuki threw to second. His throw wasn’t handled there and skipped into center, leaving Brown at third with two down. Michael Young struck out swinging to leave him there.

Many a break for the Phillies on Brown’s single. Had Werth’s throw been handled at the plate as Utley slid in, it would have been a close play, even if Utley had touched the plate. Utley slid past the plate without touching it. When Suzuki tagged him, he should have been out, but the Phillies got a helpful call. Brown would have been out by a lot if the throw at second had been handled there as he tried to move up to second when the throw came home.

Delmon Young and Ruf singled back-to-back to start the fifth, putting runners on first and second for Ruiz with nobody out. Ruiz grounded to third and the Nats turned two, leaving the Phils with Young on third and two outs for Hamels. Hamels grounded to second to end the inning.

No run for the Phils after putting men on first and second with nobody out. Ruiz grounds into their third double-play of the game.

Revere and Rollins singled back-to-back to start the sixth, putting men on first and second again with nobody out. Utley was next and hit a ball to first that was fielded by LaRoche. LaRoche made a good throw to second, but it went off the arm of Rollins as Rollins slid into the bag, off the glove of Desmond and into short left. Revere scored (2-1), Rollins went to third and Utley was safe at first with nobody out. Brown popped to short for the first out. Michael Young was next and doubled to the gap in right-center. Rollins and Utley both scored (4-1). The relay came home as Utley crossed the plate, but Suzuki made a nice play, coming out in front of the plate to take the throw and throw to third. Young was tagged out trying to move up for the second out. Righty Craig Stammen took over for Jordan and walked Delmon Young. Mayberry ran for Young at first, but was left there when Ruf struck out swinging to end the inning.

The Phils give away an out on the bases as Michael Young is thrown out trying to move up to third as Utley scores. They should have given up another out on the bases in the second when Brown tried to take second, but Suzuki’s throw wasn’t handled that time.

Revere and Rollins start another rally, singling back-to-back to start the inning and both coming around to score. Between them they’ve score five of the seven runs the Phils have plated in the first two games of the set.

Michael Young’s double off the righty Jordan is the big hit of the game.

Ugly at-bat for Brown in the frame, popping to short with runners on the corners and nobody out ahead of the double.

Stammen set the Phils down in order in the seventh.

Lefty Ian Krol got Rollins, Utley and Brown on three ground balls in the eighth.

Revere was 2-for-4 in the game, upping his average for the year to .302. He’s 13-for-his-last-27 (.481). 346/381/408 in 226 plate appearances since the start of May. BABIP of .382 after the start of May and .237 before the start of May.

Rollins 1-for-4. Two extra-base hits, both doubles, in his last 145 plate appearances.

Utley 1-for-4 with a double. Scored two of the fourth Phillie runs. Scored in the second when he doubled with two outs and scored on Brown’s single. Reached on an error in the sixth and scored on Michael Young’s double. 2-for-his-last-12 with a double.

Brown 1-for-4 with a single. Popped out with runners on the corners and nobody out in the sixth. Has at least one hit in eight games in July.

Michael Young 1-for-2 with a walk, a double and two RBI. 6-for-his-last-12.

Delmon Young 1-for-2 with a walk. 431/473/549 over his last 55 plate appearances.

Ruf 1-for-3 and struck out twice. 4-for-10 with a double and two walks so far. Six strikeouts in 11 plate appearances against right-handed pitching.

Ruiz 0-for-3. 2-for-his-last-15 with two singles. Delivered extra-base hits in 11.4% of his plate appearances in 2012 and about 2.4% of his plate appearances in 2013.

Lee (10-2, 2.73) faces lefty Gio Gonzalez (6-3, 3.14) tonight. Lee allowed four earned runs in 6 1/3 innings against the Braves in his last start, which is the only time in his last 12 outings that he allowed more than three earned runs. Over his last four starts he’s allowed four home runs to the 114 batters he’s faced. Prior to those starts he went five starts in which he didn’t allow a home run to 144 hitters. Gonzalez threw to a 1.79 ERA in his six starts in June and didn’t allow more than two earned runs in any of those outings, but gave up three earned runs over 6 2/3 in his first start of July against the Padres. He faced the Phillies on June 19 and held the Phils to two runs over seven innings while striking out 11. The Phils had two hits in his seven innings that day — a single by Revere to lead off the bottom of the first that was followed by a two-run homer by Michael Young.