PHILADELPHIA -- Roy Halladay is beginning to look like Roy Halladay again.
The two-time Cy Young Award winner, rocked in his first two outings of the season, won his second straight start Friday night as the Philadelphia Phillies beat the St. Louis Cardinals 8-2 in a game halted after 6 1-2 innings by rain.
"Obviously it was a struggle in spring training," Halladay said. "The first two starts were a struggle. I know you guys might find it hard to believe, but I always felt I was going in the right direction. I felt it was a matter of time before I put it all together."
Halladay (2-2) worked seven innings and allowed two hits, homers by Carlos Beltran and Matt Holliday in the second and seventh innings. He had beaten Miami 2-1 for his 200th career victory on Sunday.
Halladay, who struck out six and walked two, was supported by a revitalized attack. The Phillies (7-10) had scored just 55 runs in their first 16 games -- an average of 3.44 per game, tying them for 22nd in the majors -- but they lashed 10 hits. Catcher Humberto Quintero went 2-for-3 with two RBI.
Ben Revere, Jimmy Rollins and John Mayberry Jr. also had two hits apiece, and Revere scored two runs.
Jaime Garcia (1-1) took the loss for St. Louis, allowing nine hits and eight runs (four earned) in three innings.
The Phillies matched their biggest inning of the year when they scored five times in the bottom of the first. With two outs, Chase Utley walked, the first base on balls drawn by a Philadelphia hitter in the last five games.
Michael Young followed with a single to center, extending his hitting streak to 10 games. Mayberry then doubled in a run, and two more scored on a throwing error by Cards third baseman Ty Wigginton. Revere and Quintero added RBIs on a triple and double.
Beltran led off the top of the second with a homer, his second in as many days and his fourth in 47 career at-bats off Halladay.
Utley made it 6-1 when he singled over a drawn-in infield with one out in the second to bring in Rollins, who had led off with a double and moved to third on a groundout by Freddy Galvis.
Quintero singled in a run in the third, and the Phils extended their lead to 8-1 later in that inning when Revere scored on Garcia's wild pitch.
Halladay, who threw 109 pitches (59 for strikes), retiring 14 straight between the third and the sixth innings.
"He wasn't as sharp as what he can be," Cardinals manager Mike Matheny said. "Once he got on a roll he's the caliber of pitcher that can stay on that roll for a while. We know that."
"When he got behind he made quality pitches," Phils manager Charlie Manuel said. "He was able to locate the ball good on both sides of the plate."
But Halladay was hardly satisfied.
"If anybody ever tells you they're right where they want to be, there's going to be hard times coming up," he said. "You always want to improve, get better and get more consistent. That's always the goal."
NOTES: The game was delayed for 35 minutes in the middle of the seventh before it was called. ... Phillies recalled pitcher Joe Savery from Triple-A Lehigh Valley to fill John Lannan's roster spot. Lannan had been placed on the 15-day disabled list Thursday with a strained quadriceps tendon near his left knee, though Manuel said he will likely be out six to eight weeks. ... Phillies first baseman Ryan Howard did not start because of tightness in his groin. Kevin Frandsen filled Howard's spot at first, and Young was moved into the cleanup spot in the order, where Howard normally hits. ... The Cardinals' starting staff began the night with 86 strikeouts, equaling Cincinnati for most in the National League.