Chris Johnson helps Cardinals overcome Catanzaro's 2 misses

DENVER -- One veteran running back shook off the rust, the other failed to shake up his roster Thursday night when the Arizona Cardinals beat the Denver Broncos 22-20.

Brandon McManus missed a 51-yard field goal in the final minute as the Broncos (3-1) failed to complete a perfect preseason.

Playing in a final preseason game for the first time since 2009, Cardinals running back Chris Johnson ran 11 times for 45 yards in his first action of the summer after recovering from a hamstring injury.

"He was sharp," Cardinals coach Bruce Arians said. "He looked explosive again."

Johnson started out slowly, but reeled off a 16-yard run from the Arizona 20, sparking a 15-play, 80-yard drive that ended with Paul Lasike's 4-yard TD catch from rookie Phillip Sims.

"It felt pretty good getting hit and making runs, doing the things I needed to do," Johnson said.

"It wouldn't been good for me to start the season not being able to get any reps."

Chandler Catanzaro missed two PATs, the second coming after Logan Thomas' 59-yard TD toss to J.J. Nelson that put Arizona (2-2) ahead 22-20 early in the fourth quarter.

Those misses loomed large until McManus pushed his field goal try wide right with 49 seconds remaining.

Broncos running back Montee Ball ran 16 times for just 27 yards -- the same total Kapri Bibbs managed in only six rushes. Ball slid down the depth chart this summer and was trying to convince coach Gary Kubiak he should keep four running backs.

His poor performance might not matter, though.

"Obviously the numbers aren't good, we didn't run the ball a lick in the game," Kubiak said. "I've got to look at the big picture . me watching the game I don't know how many fair opportunities he had. .... Let's be fair to him, too, you've got to have room to run."

Kubiak pointed out that rookie Max Garcia, on just three days' practice, played center as did third-stringer Dillon Day.

Ball said he trusts he'll be playing somewhere this season and he hopes it's in Denver.

"All I can do now is sit back and wait," he said.

Some observations from the game:

BROCK'S WORLD: On his first snap, Brock Osweiler threw a 78-yard touchdown strike to a wide-open Bubba Caldwell. After leading Denver to 49 preseason points, Peyton Manning's longtime backup said he wasn't looking forward to going back to carrying a clipboard.

"That's probably the easiest question to answer," he said. "Without question it's going to be hard."

INJURIES: Arizona TE Gerald Christian (left knee) and CB Jimmy Legree (right calf) were hurt in the first half.

ONWARD WITHOUT WARD: The Broncos learned before kickoff that they'll be without Pro Bowl safety T.J. Ward for the opener against Baltimore. In May 2014, video surveillance showed Ward throwing a glass mug at a female bartender at a Denver strip club, although charges were later dropped.

"I feel it's really unfair," Ward said. "I'm getting punished for being accused of doing something, not for doing something, but being accused, and I've got to pay the consequences for it. And I just don't feel the whole process is very fair."

WITHER WEATHERSPOON: Cardinals ILB Sean Weatherspoon made three tackles in his first game in pads since December 2013. He missed all of last year with a torn Achilles tendon and pulled a hamstring on the first day of training camp.

SHAQ ATTACK: The Broncos got five more sacks, giving them 20 for the preseason. Shaq Barrett had two against Arizona to make up for two offside penalties.