ORCHARD PARK, N.Y. -- Philip Rivers found a new go-to target in leading the San Diego Chargers to their latest victory.
Royal scored on 3- and 5-yard receptions and finished with four catches 42 yards. Malcom Floyd had two catches for 98 yards in a game the Chargers never trailed.
Rivers finished 18 of 25 for 256 yards and extended his touchdown streak to 23 games to match the team record he set over the 2009-10 seasons.
San Diego beat Buffalo despite a depleted offensive backfield. Already missing starting running back Ryan Mathews (right knee), the Chargers lost backup Danny Woodhead to a right ankle injury. Woodhead did not return after being carted off following a 1-yard run 3-1/2 minutes in.
Donald Brown stepped in and finished with a combined 89 yards offense (62 rushing and 27 receiving), while undrafted rookie Branden Oliver had 11 yards rushing in his NFL debut. It was a homecoming for Oliver, who set several career records at the University at Buffalo.
The Chargers are off to a 2-1 start for the third time in four years. And they built on the momentum generated following a 30-21 home win over the defending Super Bowl champion Seahawks.
Fred Jackson scored on an 11-yard catch and run for Buffalo (2-1), which blew an opportunity to get off to a 3-0 start for only the third time since 1993.
Quarterback EJ Manuel went 23 of 39 for 238 yards, but had difficulty finding chemistry with his receivers.
Rookie first-round pick Sammy Watkins had two catches for 19 yards, a week after having eight catches for 117 yards and a score in a 29-10 win over Miami.
Manuel also gave up a safety after being penalized for intentional grounding in the end zone with 3:23 remaining.
The Chargers defense had three sacks and limited the Bills to 11 first downs and 171 yards offense through three quarters.
San Diego took control on consecutive possessions spanning halftime.
Nick Novak capped a seven-play, 61-yard drive with a 37-yard field goal to put the Chargers up 13-3 with 21 seconds left in the second quarter.
Rivers then opened the third quarter by marching the Chargers on a 14-play, 80-yard drive, which he capped with a 5-yard pass to Royal. Rivers completed 4 of 6 attempts for 56 yards on the drive, with both incompletions coming on balls he threw away while escaping pressure.
The Bills were unable to muster a threat after Jackson cut the Chargers' lead to 20-10 late in the third quarter.
Buffalo's next drive ended with Corey Liuget sacking Manuel for a 17-yard loss. Then the Bills gave up the ball on downs, when rookie receiver Sammy Watkins was late looking for the ball that sailed past him on fourth-and-3 at the Chargers 43.
And the sold-out house began heading for the exits with 5:31 left when defensive end Kendall Reyes sacked Manuel for a 10-yard loss to force a punt on fourth-and-20 at Buffalo's 10.
The game was played on a blustery afternoon, with winds off Lake Erie gusting up to 35 mph. Rivers, however, didn't seem to have any trouble cutting through the wind no matter which direction the Chargers were going.
With the wind at his back, Rivers hit Floyd up the right sideline for a 49-yard gain on the second play from scrimmage. That set up the Chargers' first touchdown, when Rivers hit Royal for a 3-yard score.
Rivers then opened San Diego's final possession of the half by throwing into the wind and hitting an open Floyd deep over the middle for another 49-yard gain that set up Nick Novak's 37-yard field goal.
Andre Reed was honored during a ceremony at halftime, when he was presented his Hall of Fame ring by Pro Football Hall of Fame President David Baker. Reed was one of seven to be inducted into the Hall of Fame in August.