MINNEAPOLIS -- Even though he's not hitting a lot of home runs, Justin Morneau is still making an impact for the Twins offense.
"Right now I still feel like I'm having productive at-bats and still helping us win ball games," said Morneau, who is hitting .297 and leads the Twins with 36 RBI.
"It'll come if I keep hitting the ball hard. Obviously, it's frustrating. But doing different things to help us win, I think I can live with that."
The Twins entered Tuesday with just four hits in their past 50 at-bats with runners in scoring position, but got three hits in clutch situations against Philadelphia.
"Watching TV, we saw the numbers scrolling across. They weren't very good," Morneau said. "To be able to come through in that situation is good for everybody. Hopefully it gets us rolling in the right direction."
Jamey Carroll -- who had two hits and snapped a 0-for-24 slump -- drew a walk to start the eighth off reliever Mike Adams (1-4) and ended up on third after a Joe Mauer single and a fielder's choice.
Josh Willingham fouled out before Morneau fouled off four straight pitches and lined a single up the middle off Antonio Bastardo to give Minnesota the lead.
"Couldn't get him out at 1-2," Phillies manager Charlie Manuel said.
The Phillies have lost four straight after winning five in a row to climb one game over .500.
Glen Perkins pitched a perfect ninth, striking out Freddy Galvis to end the game and secure his 14th save.
Twins starter P.J. Walters allowed two runs in 7 1/3 innings and was removed with runners on first and second.
"I liked our chances against him, but give the kid credit, he did good," Manuel said. "He got his breaking ball and changeup over and got ahead in counts on us, kind of pitched us backwards."
Right-hander Casey Fien originally trotted to the mound to relieve Walters, but was sent back soon after he arrived in favor of Bran Duensing.
Gardenhire said an umpire signaled for the righty even though he called for the lefty and yelled it twice.
"He thought it was a better move, maybe," Gardenhire joked.
Philadelphia tied it at 2 in the eighth when Ryan Howard's single off Duensing (1-1) scored Kevin Frandsen.
Duensing struck out Jimmy Rollins, but Howard's grounder rolled through the right side of the infield to tie the game.
Cole Hamels had a 1-0 lead in the fourth before Willingham, Morneau and Oswaldo Arcia doubled to give Minnesota the lead.
Hamels allowed two runs and struck out five over six innings. The Phillies have won only two of Hamel's 14 starts.
"I probably threw a couple pitches at the wrong time for what they were looking for and they were able to put them in play," Hamels said.
Arcia's double short-hopped the wall and landed just out of the reach of Ben Revere, who had his back to the infield and leaped toward the ball at the last second.
Revere was traded to Philadelphia from Minnesota in the offseason. The speedy center fielder made spectacular catches at Target Field to take away similar hits last season.
Michael Young had Philadelphia's other RBI in the third.
An MRI on Monday revealed a medical meniscus tear in Erik Kratz's left knee, an injury that requires surgery and could knock out the Phillies' catcher for the rest of the season. Kratz was second on the team with eight home runs and hurt the knee running to first base in Saturday's loss to Milwaukee. ... Relievers Jared Burton (groin) and Ryan Pressly (shoulder) were unavailable for the Twins. Both are day to day. ... Revere on the Twins trading him: "They gave me a chance to be a major league player, and I just thank them every day for that." ... Willingham played in his 1,000th game, becoming the 93rd active player to do so. ... Mike Pelfrey (3-6, 6.40 ERA) starts for the Twins on Tuesday. Coming off Tommy John surgery, the right-hander has only managed to complete six innings or more in three of his 12 starts this season. ... Coming off a start where he shut out the Brewers over 6 2/3 innings, Tyler Cloyd (2-2, 3.68) takes the mound for Philadelphia on Tuesday.