GLENDALE, Ariz. -- Arizona rookie David Johnson rushed for 66 yards in 13 carries in his NFL debut, San Diego had six first-half sacks, and rookie Josh Lambo kicked a 42-yard field goal as the game ended to give the Chargers a 22-19 preseason victory over the Cardinals on Saturday night.

Johnson, a fourth-round pick from Northern Iowa who had been out most of training camp with a hamstring injury, also caught two passes for 15 yards.

Melvin Ingram sacked Carson Palmer twice.

Palmer, playing less than one quarter, completed a 57-yard pass to rookie speedster J.J. Nelson to set up his 17-yard TD pass to John Brown.

San Diego quarterback Philip Rivers sat out the game.

Rookie quarterback Phillip Sims directed the Cardinals to 10 fourth-quarter points to tie it at 19 before Lambo won it.

Arizona backup Drew Stanton was sacked four times.

The Chargers' lone first-half touchdown came after linebacker Kavell Conner intercepted Stanton's underthrown pass and returned it 29 yards to the Cardinals 12-yard line, leading to Branden Oliver's 3-yard scoring run.

Palmer went 3 of 7 for 88 yards and a touchdown and had a couple of passes dropped. The 35-year-old quarterback, coming back from ACL surgery, had gone 4 for 4 for 77 yards in his lone series against Kansas City the previous week.

Kellen Clemens, starting in place of Rivers, was 9 of 15 for 88 yards.

Arizona led 6-0 when the first unit left the game after one quarter.

Lambo kicked a 53-yard field goal as the half ended to tie the score 9-9 and added a 43-yarder before his winner. Arizona's Chandler Catanzaro had field goals of 28 and 37 yards, but missed from 38.

Each team botched an extra point from the new, longer distance. Arizona didn't even get its attempt off because holder Dave Zastudil couldn't handle the snap. After San Diego's first TD, Nick Novak's attempt bounced off the right upright.