Griese's job in Denver has been anything but secure as coach Mike Shanahan has hinted that he would not hesitate to make a change should his quarterback struggle.
Griese was nearly removed in favor of Steve Beuerlein in the season opener against St. Louis.
But Griese has been up to Shanahan's challenge and he had another efficient game Sunday, completing 19 of 31 passes for 211 yards. He had touchdown passes of one yard to tight end Dwayne Carswell and 26 yards to Rod Smith late in the fourth quarter.
"We made two big drives in the third and fourth quarter," said Griese, who has won three straight starts for the first time in his career. "That seems to be the trend of late, having to make a drive in the fourth quarter. We would like to put the game away in the first half, but we'll take it."
Portis, the Broncos' second-round pick, carried 18 times and scored his first career tuochdown with a one-yard run in the second quarter.
Defensive tackle Chester McGlockton scored on a 24-yard fumble return in the first quarter for the unbeaten Broncos (3-0).
"I told the team after the game that you've got to find a way to win," Broncos coach Mike Shanahan said. "That's what separates the good teams from the great ones. It wasn't pretty, but we found a way to win today."
Drew Bledsoe passed for two touchdowns for the Bills (1-2), who had played overtime in their first two games.
"We made some strides as a team playing against a very good team, but we made too many mistakes and didn't make the critical plays down the stretch," Bills coach Gregg Williams said."
Starting to gain respect after shutting down St. Louis and San Francisco, the Broncos came up with a big defensive play late in the first quarter to produce the game's first points.
McGlockton picked a up a fumble by Travis Henry and rumbled 24 yards for his touchdown.
"I was coming back around to make sure that (Travis Henry) was going down and the ball was just there," McGlockton said. "I'm the slowest D-lineman on this team, so I was just happy everybody had stopped. I probably wouldn't have gotten there had people known what was going on."
The Broncos shut down the Bills' running game, limiting Henry to 35 yards on 12 carries. They also sacked Bledsoe four times.
"We were able to take away the run," Shanahan said. "We felt if we could do that and make it a one-dimensional game, good things would happen."
Griese got the Broncos offense moving to start the second quarter when he took them 85 yards in 10 plays. Griese had a 17-yard completion to Smith to move the ball into Buffalo territory and found Ed McCaffrey for 24 yards to the three.
Two plays later, Portis banged in from one yard, making it 14-0 with 9:51 left before intermission. Portis got a majority of the carries with Olandis Gary suffering a sprained ankle in the first quarter.
The Bills answered later in the quarter, going 80 yards in nine plays. Bledsoe found Eric Moulds for a 44-yard pass on third and five to the Denver 16.
Henry capped the drive with 2:50 left before the half with a one-yard run, pulling the Bills within 14-7.
"The bottom line for us offensively is that we have got to get better at starting the game," Bledsoe said. "I have to be better at starting games. We're digging holes for ourselves and leaving problems for ourselves at the end of the game. We have to be more productive at the start and communicate a little better."
Bledsoe again went long on the Bills first possession of the third quarter, connecting with Peerless Price for 42 yards to the Denver 26. But that drive stalled and Mike Hollis kicked a 38-yard field goal.
Griese capped an 11-play, 80-yard drive with under a minute left in the third with a one-yard toss to tight end Dwayne Carswell, extending the lead to 21-10. Griese has thrown a touchdown pass 18 straight games, the longest streak in the NFL.
Maligned for their play on special teams, the Bills got a big play from that unit early in the fourth when punter Tom Rouen dropped a snap and Buffalo took over at the Denver 12.
Bledsoe came through on third and two, finding rookie Josh Reed over the middle for a four-yard touchdown. The conversion failed, leaving Buffalo behind, 21-16. Bledsoe finished 27 of 41 for 283 yards.
But the Broncos answered that score as they went 80 yards in 10 plays. Griese made a huge play on the march, finding Smith for six yards on fourth and five to the Buffalo 31.
After an offsides penalty, Griese caught the Bills in a blitz and found Smith over the middle with a 26-yard touchdown with 2:39 remaining.
Quiet in the first two games, Smith finished with seven catches for 94 yards.
With the Broncos in a prevent defense, Bledsoe threw a two-yard touchdown pass to Eric Moulds with 1:27 remaining. Moulds had nine catches for 96 yards.