Things went from bad to worse for the Browns. Hoyer was knocked out of the game with a knee injury on Cleveland's second possession. Weeden took over and showed signs of rust early after a two-week absence caused by a sprained thumb.
Dan Carpenter made it 10-0 on 52-yard field goal, capping a 13-play, 56-yard drive. The key play was a 20-yard pass from Manuel to tight end Scott Chandler.
The Browns clawed back to take a lead with 17 points in the second quarter. Cundiff got things going with a 30-yard field goal, and then McGahee tied the game by squirming into the end zone from the 1 with 3:52 left in the half.
Travis Benjamin scored on a slashing 79-yard punt return with 2:20 left in the half to break the tie.
"He's the fastest man alive," Browns tight end Jordan Cameron said.
McGahee ran 26 times for 72 yards, both game-high totals.
NOTES: Johnson was knocked out of the game in the first half due to a back injury. ... With Cleveland OLB Jabaal Sheard nursing a knee injury, rookie Barkevious Mingo made his second consecutive start. ... Shawn Lauvao started at right guard for the Browns after he missed the first four games with a knee injury. ... Da'Norris Searcy started at free safety for the Bills in place of Jairus Byrd (foot). ... The Browns' inactive list consisted of Sheard, QB Jason Campbell, OLB Quentin Groves, C Patrick Lewis, T Martin Wallace, RB Fozzy Whittaker and DE Billy Winn. ... The Bills' inactive players were Byrd, CB Ron Brooks, CB Stephon Gilmore, WR Marquise Goodwin, TE Chris Gragg, K Dustin Hopkins and T Sam Young.