CLEVELAND -- When C.J. Spiller got hurt, the Buffalo Bills lost the NFL's leading rusher, most of their momentum and another major offensive threat.
Ryan Fitzpatrick wouldn't let them lose the game.
Fitzpatrick threw three touchdown passes and the better-than-advertised Bills overcame the loss of Spiller to a shoulder injury and beat the Cleveland Browns 24-14 on Sunday to snap an eight-game road losing streak.
Fitzpatrick, doing just enough to keep Buffalo's offense moving, finished 22 of 35 for 208 yards as the Bills (2-1) turned to their passing game after Spiller, who has been filling in for Fred Jackson, went down in the first quarter with an injury that will likely sideline him a few weeks.
The Bills won outside Buffalo for the first time since the 2011 opener at Kansas City.
"We got the monkey off our back," Fitzpatrick said. "We always felt confident. This is a new year, a new team, but it was a good team win on the road. These are the most satisfying wins."
As the final seconds ticked off, some of Buffalo's players celebrated with hundreds of Bills fans who made the short drive over from Western New York.
Before he went out, Spiller, who came in leading the league with 292 rushing yards, scored on a 32-yard screen pass from Fitzpatrick, who also threw a 9-yard TD to T.J. Graham in the first quarter and hooked up with Stevie Johnson from 9 in the fourth to close the scoring.
Bills coach Chan Gailey does not expect Spiller to be back for next week's home game against New England -- and possibly longer.
"I don't believe it's long, long-term," Gailey said. "If he missed a week that's long for me. He's going to be out for sure this week and then we'll see."
Spiller will undergo further testing Monday. He was not available for interviews.
For the Browns (0-3), the losing continues.
Cleveland has lost nine straight dating to last season, and one of the league's youngest teams was not able to build off a solid performance last week in Cincinnati.
"We just didn't get it done," said coach Pat Shurmur, who dropped to 4-15 in two seasons. "There are no magical answers. We just didn't get it done."
When Spiller got hurt, the Bills appeared to be in trouble.
But Fitzpatrick made big throws when he needed to and third-string running back Tashard Choice gained 91 yards. Fitzpatrick has eight TD passes, and he has not thrown an interception since tossing three picks in the Bills' season-opening loss to the Jets.
Fitzpatrick got great protection from an offensive line that has only allowed one sack this season. He passed around some compliments afterward, crediting his teammates for stepping up without Spiller.
"We knew we had to put our foot on the gas again and when we did, the offensive line was revved up and ready to go," he said. "It was a heck of a job by Tashard. He got some really tough yards for us."
The Browns were again plagued by costly penalties, dropped passes and an inability to stop the run.
Rookie quarterback Brandon Weeden went 27 of 43 for 237 yards and a TD pass to fellow rookie Travis Benjamin. However, he was intercepted twice in the final 4:21 as he tried to rally the Browns.
Buffalo's defense limited Browns rookie running back Trent Richardson to just 27 yards on 12 carries. After rushing for 109 yards last week in Cincinnati, Richardson's longest gain was his 6-yard TD run in the second quarter.
"We wanted to stop Richardson," Gailey said. "We talked about it and made a big deal about it. We did not want to let him get out. We wanted them to throw the football. It worked kind of like we thought it would."
The Bills took a 10-point lead on Rian Lindell's 37-yard field goal before the Browns pulled within 17-14 on Weeden's TD pass to a wide-open Benjamin.
Fitzpatrick later led a 10-play, 68-ard drive, capping it by rifling his TD pass over the middle to Johnson, who got a step on cornerback Dimitri Patterson.
Spiller was injured in the first quarter when he was tackled after a long gain on a pass play.
He hit the ground with Browns safety Usama Young on his back, and Spiller was in obvious pain as Buffalo's training staff rushed onto the field to assist him. Spiller was helped to his feet and the third-year back gingerly supported his left arm as he was walked slowly to the sideline.
He was placed on a cart and driven to the locker room for further evaluation and treatment.
At that point, Buffalo's chances of ending its road slide seemed bleak.
But these Bills turned Cleveland's home-field advantage into their own.
"It was tough to lose him," said Johnson, who had seven catches for 61 yards. "We have guys who can fill the void."
NOTES: Bills DE Mario Williams recorded his first sack with Buffalo, which signed him to a $100 million free agent contract in March. ... With his TD reception, Spiller has scored a TD in six consecutive games, the longest streak by a Buffalo player since Hall of Famer Thurman Thomas' six-game streak in 1990. ... Browns WR Mohamed Massaquoi injured his hamstring in the second half and did not return. ... It's a short workweek for the Browns, who will play at Baltimore on Thursday.