ORCHARD PARK, N.Y. -- Quarterback Teddy Bridgewater need not rush back from injury after Case Keenum showed glimpses of being a capable backup in the Minnesota Vikings' 17-10 preseason-opening win over the Buffalo Bills on Thursday night.
Taking over for starter Sam Bradford, Keenum went 11 of 16 for 121 yards. The sixth-year player engineered a pair of scoring drives -- both set up by passes to rookie receiver Stacy Coley.
Keenum hit Cooley in stride over the middle on a crossing pattern for a 38-yard catch to set up Kai Forbath's 36-yard field goal to tie the game at 3-3 late in the second quarter.
On the opening drive of the second half, Keenum rolled to his right and hit Coley, a seventh-round pick out of Miami, who made a sliding catch at the Bills 2.
Fullback C.J. Ham scored on the next play to put Minnesota ahead 10-3.
The Vikings signed Keenum in April as insurance with Bridgewater still recovering from a serious left knee injury sustained a year ago.
The Bills' starting defense was stout in two series, while their offense struggled moving the ball under new coach Sean McDermott. Jerry Hughes and backup defensive end Eddie Yarborough each sacked Bradford, who played just two series.
Buffalo starting quarterback Tyrod Taylor played three series and hit 5 of 8 attempts for 46 yards.
Taylor also avoided a scare when he came up limping after Vikings defensive end Everson Griffen fell on him for a 6-yard sack on Buffalo's opening drive. Taylor completed the series and was evaluated under a tent on the sideline before being cleared to return.
- Vikings hold off Bills, win preseason opener
- PHOTOS: Vikings at Bills
- Cook, Murray finally ready to battle for Vikings' backfield
- Meet the 2017 Vikings: Fun facts about your favorite players
- Digital Extra: Vikings fun facts
He showed no signs of being hurt three plays later when he scrambled away from Griffen and Danielle Hunter before running out of bounds for a 2-yard gain. Buffalo's starting offense accounted for five first downs and 89 yards, including a seven-play, 37-yard drive that ended with Stephen Hauschka hitting a 42-yard field goal.
Vikings third-string quarterback Taylor Heinicke hit Rodney Adams for a 2-yard touchdown catch.
The Bills made it close with 10 minutes left when rookie fifth-round pick Nathan Peterman hit Dezmin Lewis on a fade route in the left corner for a 1-yard touchdown.
Bills receiver Anquan Boldin did not play after participating in just one practice after signing a one-year contract on Monday.
Vikings: LT Riley Reiff (back), RBs Latavius Murray (ankle) and Jerick McKinnon, WR Laquon Treadwell (leg).
Bills: RB LeSean McCoy, LT Cordy Glenn (left foot), CB Kevon Seymour (foot) and DE Shaq Lawson (groin).
Vikings: Running back Dalvin Cook finished with five carries for 13 yards and had four catches for 40 yards in accounting for nearly half of the 127 yards Minnesota gained in the first two quarters. Cook, who was celebrating his 22nd birthday, was drafted in the second round out of Florida State and pegged to take over as the Vikings' starter.
Bills: First-round pick CB Tre'Davious White's open-field tackle limited Cook to a 6-yard reception on third-and-12 to end the Vikings' second possession.
Vikings: Bradford hit 5 of 7 for 35 yards and Heinicke finished 3 of 8 for 20 yards and an interception.
Bills: Backup T.J. Yates went 6 of 11 for 48 yards and Peterman finished 13 of 25 for 112 yards and lost a fumble on a botched snap on Buffalo's final possession.
Vikings: Starting CB Trae Waynes did not return after hurting his left shoulder early in the first quarter. RB Bishop Sankey had difficulty putting any weight on his left foot in being helped off the field after a 14-yard run on the opening drive of the third quarter.
Bills: Rookie LB Tanner Vallejo did not return after hurting his shoulder late in the second quarter.
Vikings: At Seattle on Aug. 18.
Bills: At Philadelphia on Aug. 17.