CLEVELAND -- The Bills lost the NFL's leading rusher and their momentum.
Ryan Fitzpatrick wouldn't let Buffalo lose again on the road.
Fitzpatrick threw three touchdown passes and the Bills overcame the loss of running back C.J. Spiller to beat the Cleveland Browns 24-14 on Sunday, snapping an eight-game road losing streak.
Fitzpatrick finished 22 of 35 for 208 yards as the Bills (2-1) turned to their passing game after Spiller, the NFL's leading rusher, was lost in the first quarter with a shoulder injury.
The Bills hadn't won outside Buffalo since the 2011 season opener at Kansas City.
Before he got hurt, Spiller 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 yards in the fourth for a 24-14 lead.
The Browns (0-3) have lost nine straight dating to last season.
Without Spiller, who was filling in for the injured Fred Jackson, the Bills appeared to be in big trouble.
But Fitzpatrick kept Buffalo's offense moving and now has eight TD passes this season. He has not thrown an interception since tossing three picks in the Bills' season-opening loss to the New York Jets. Fitzpatrick got great protection from an offensive line that has only allowed one sack this season.
Third-string running back Tashard Choice gained 91 yards for the Bills.
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 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.
The Bills took a three-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.
Spiller's injury stole some of the Bills' momentum as did a fumble by Fitzpatrick later in the drive. At Cleveland's 18, Fitzpatrick had the ball slip out of his hand as he tried to pass and Cleveland recovered.
The Browns would score later in the second quarter on Richardson's 6-yard run. After taking a handoff up the middle, Richardson bounced off the pile, cut left and high-stepped into the end zone for his third TD in two games.
Before he got hurt, Spiller scored on a well-designed screen pass that caught the Browns' defense off guard. Spiller drifted out to the left side, picked up a block and went untouched to the end zone as the Bills opened a 14-0 lead with just under 10 minutes elapsed.
The Bills scored on their first possession, with Fitzpatrick finding a wide-open Graham in the front of the end zone.