Weinke, making his first start in more than four years in place of the injured Jake Delhomme, threw for a team-record 423 yards, but had three second-half interceptions. He also was undone by drops and a nonexistent running game.
The win also took some pressure off embattled coach Tom Coughlin, who had come under fire after a series of late-game collapses and player sniping.
"This not just a relief for him, it's a relief for all of us," Giants linebacker Antonio Pierce said. "If anything bad happens to the head man, it runs down to us. I think the whole organization feels a lot better."
Barber went over 10,000 career yards rushing in the second quarter on the way to his fifth 100-yard game of the season.
Manning had his second solid outing in a row, throwing a 2-yard touchdown pass to David Tyree midway through the third quarter to make it 27-10.
"Eli did a great job, directing us and leading us out there," Barber said. "We've put a lot into it. Obviously, things swirling around would suggest otherwise. We've been energetic. We've been having a good time despite what the perception is."
Tyree's touchdown was set up after the first of Gibril Wilson 's two interceptions of Weinke. The 34-year-old former Heisman Trophy winner, who hasn't been a full-time starter since Carolina's 1-15 season in 2001, completed 34 of 61 passes, but struggled with his accuracy in the second half.
Kevin Dockery picked off Weinke in the fourth quarter, sending most of the crowd home.
Weinke, who had thrown 13 passes in the past four seasons, had at least six different players drop passes. He surpassed Steve Beuerlein's record of 373 yards passing against Green Bay in 1999, but it didn't stop the downward spiral of Carolina's once promising season.
Carolina's starting cornerbacks, Ken Lucas and Chris Gamble, both missed the game with hamstring injuries. Rookie Richard Marshall and Christian Morton started in their place, but Morton pulled up with a hamstring injury five minutes into the game while playing on special teams and didn't return.
That forced Dion Byrum, an undrafted rookie signed last month off Tampa Bay's practice squad, to work with the first team. Safety Mike Minter was the third cornerback on passing downs.
Plaxico Burress took advantage, beating Marshall on a 45-yard pass and Byrum for a 28-yard TD that made it 10-0 in the second quarter.
"I got caught out of position," Byrum said. "I was trying to get the call from my safety on what coverage we were supposed to be in and by that time they had snapped the ball, and Plaxico being 6-5 with that long stride, he had already gained those eight or nine yards on me."
Weinke got going in the second quarter, throwing a perfect pass to the outside shoulder of Drew Carter, who hauled it in over Dockery for a 36-yard touchdown that cut the Giants' lead to 10-7.
Carter, who had eight catches for a career-high 144 yards, made a diving catch for a 38-yard gain and Weinke scrambled for 13 yards on the next possession, leading to John Kasay's tying 37-yard field goal.
But Manning's 1-yard touchdown pass to Jeremy Shockey in the final minute of the first half gave the Giants the lead for good at 17-10.
DeShaun Foster returned from an elbow injury that sidelined him for two games, but the Panthers managed only 45 yards rushing.
"Our mindset was to establish the run and take our shots when they were there," Weinke said. "We had to play catch-up. It's hard to be successful in the NFL when you are one dimensional and the pressure was on us to make plays down the field."
Steve Smith was held to five catches for 67 yards as Delhomme looked on from the sideline wearing a hooded sweatshirt.
Delhomme hadn't missed a game since taking over as Carolina's No. 1 quarterback at halftime of the 2003 season-opener.
The Giants improved to 2-11 in the past three seasons when defensive end Michael Strahan doesn't play. Strahan missed his fifth straight game with a right foot injury. ... With Gamble out, Smith returned three punts for a 3.7 average. ... Carolina TE Kris Mangum suffered an injured hip in the fourth quarter and did not return.