ORCHARD PARK, N.Y. -- LeSean McCoy rushed for 91 yards and two touchdowns and Tyrod Taylor passed for 268 yards and a touchdown as the Buffalo Bills came from behind to defeat the Tampa Bay Buccaneers 30-27 on Sunday at New Era Field.
Stephen Hauschka made three field goals, including the game-winner from 30 yards with 14 seconds remaining. Earlier in the game, Hauschka tied an NFL record by making his 12th consecutive field goal of at least 50 yards.
The two teams exchanged the lead twice in the fourth quarter and the Bills (4-2) scored 10 points in the final three minutes.
Deonte Thompson caught four passes for 107 yards. Thompson signed with the Bills on Thursday after he spent the first five weeks of the season with the Chicago Bears.
Jameis Winston started at quarterback for the Buccaneers after being listed as questionable with a shoulder injury. Winston was 32 of 44 passing for 384 yards and three touchdowns. But he fumbled twice, losing one, and threw an interception.
The Bills drove 65 yards in 46 seconds and McCoy's 7-yard touchdown run tied the game at 27 with 2:32 left to play. Thompson caught a 41-yard pass on the first play of the possession and Buccaneers cornerback Robert McClain was penalized for a helmet-to-helmet hit that gave the Bills the ball at the 16.
On the first play of Tampa Bay's next drive, rookie cornerback Tre'Davious White forced a fumble by wide receiver Adam Humphries and recovered the ball at the Buccaneers 33 to set up the winning field goal.
Winston had rolled out and thrown a strike to Evans, who dragged both of his feet while falling out of bounds for a 12-yard touchdown that put the Buccaneers in front 27-20 with 3:14 remaining.
The scoring drive came after linebacker Lavonte David forced a McCoy fumble and recovered the ball at the Buccaneers 46.
Tampa Bay tied the game at 20 less than a minute earlier when Winston rolled out to his right and threw back to an uncovered Howard along the left sideline for a 33-yard touchdown.
Hauschka's record-tying 52-yard field goal gave the Bills a 20-13 lead early in the fourth quarter.
Winston found Howard for a 7-yard touchdown that brought the Buccaneers within 17-13 midway through the third quarter. An unnecessary roughness penalty on Bills cornerback Leonard Johnson and a 32-yard pass to Doug Martin put Tampa Bay in scoring position.
Taylor threw a 22-yard touchdown pass to tight end Logan Thomas on the opening drive of the second half to put the Bills up 17-13.
McCoy scored his first touchdown of the season on a 1-yard run in the second quarter and Hauschka kicked a 25-yard field goal for the Bills, who led 10-6 at halftime.
Hauschka missed a 41-yard attempt after defensive end Ryan Davis stripped the ball from Winston and Leonard Johnson recovered the fumble near midfield. The Bills had another chance to score late in the first half when rookie linebacker Matt Milano intercepted Winston at the Tampa Bay 26 with 23 seconds remaining. But Buffalo mismanaged the clock and did not attempt a field goal.
The Buccaneers gained 132 yards on their first two drives, but came away with only two field goals (from 50 and 25 yards) by kicker Patrick Murray against the Bills' top-ranked red-zone defense.
NOTES: K Stephen Hauschka, who spent the past six seasons in Seattle, matched a record held by Blair Walsh, Robbie Gould, Justin Tucker and Matt Prater. He also became the fourth active kicker to score a point in 100 consecutive games. ... Bills CB E.J. Gaines left the game in the third quarter with a hamstring injury and did not return. Gaines missed Buffalo's previous game with a groin injury. ... Buccaneers LB Kwon Alexander (hamstring) returned to the lineup after missing four games. ... WR Jordan Matthews (broken thumb) started for the Bills three weeks after getting injured. He wore a protective glove. ... Bills RG John Miller, a second-round draft pick in 2015, was inactive for the second straight game.