GLENDALE, Ariz. (AP) The season has been bad enough for the Arizona Cardinals. A loss at home to San Francisco would have made it so much worse.
Chandler Catanzaro, the kicker who cost the Cardinals two victories this season, came through this time with a 34-yard field goal as the game ended for a 23-20 victory on Sunday.
The close loss was of no consolation to 49ers coach Chip Kelly, whose team has lost eight in a row since winning its opener.
''Every loss hurts,'' he said. ''I don't know how you're wired, but I'm not a big fan of losing.''
The Cardinals, coming off a bye week following a one-sided loss at Carolina, jumped to a 14-0 lead and were up 20-10 at the half before Colin Kaepernick brought the 49ers back.
''We have to do a better job when you get a decisive lead in the National Football League,'' said Arizona wide receiver Larry Fitzgerald, who kept moving up the NFL all-time lists with 12 catches for a bruising 133 yards. ''Fourteen points-plus, you would like to be able to put teams away.''
Still, it was a victory that brought Arizona (4-4-1) back to .500 with a rough schedule ahead. Five of its final seven games are on the road, beginning next Sunday night at Minnesota.
If Arizona hadn't won on Sunday, coach Bruce Arians said, ''It's over, you know?''
''It's over if you don't win at home. It really is,'' he said. ''Now it's where it needs to be.''
Here are some things to consider from the Cardinals' victory.
KAP'S PLAY: Kaepernick had another strong performance in his fourth start since taking over at quarterback from Blaine Gabbert.
Kaepernick completed 17 of 30 passes for 210 yards and a touchdown and ran 10 times for 55 yards, including a 4-yard scamper for a touchdown that tied the game with 1:55 to play.
''It's grown and grown,'' Kaepernick said of his familiarity with Kelly's offense. ''The more reps I get, the more comfortable I get in this offense.''
BATTERED FITZ: Fitzgerald took some rough hits in yet another big game against San Francisco.
One time he was flipped over backward, landing on the back of his neck.
''I've been better,'' said Fitzgerald, who already was dealing with knee and ankle soreness. ''I'm good enough to go. This is Week 9 in the National Football League, everybody is dealing with something. You tape it up.''
STOPPING JOHNSON: The 49ers shut down the Arizona ground game after entering the contest ranked dead last in the NFL in run defense at 193 yards per game.
The Cardinals managed just 80 yards, averaging 3.5 per attempt. David Johnson gained 55 yards in 19 carries, an average of 2.9 per attempt.
There were no great schematic changes, San Francisco safety Antoine Bethea said.
''Same play calling, same people out on the field,'' he said. ''We just executed better.''
Johnson still managed to top 100 yards from scrimmage, barely, for the ninth game in a row and scored both Arizona TDs.
NELSON'S WOES: It was a tough day for Arizona's diminutive receiver, J.J. Nelson.
He fumbled away a punt return and, in the second half, a pass bounced off his fingers and into the hands of the 49ers' Eric Reid.
''Unfortunately, that is the game,'' quarterback Carson Palmer said. ''He's made plenty of big plays. We're expecting him to make big plays. We've got two huge road trips against two very good defenses and J.J. is going to make plays when he needs to. There's ups, there's downs, there's ebbs and flows to games. He'll bounce back.''
AIR ARIZONA: The Cardinals had become a run-oriented team through the first half of the season, but with that shut down on Sunday, they took to the air.
Palmer completed 30 of 49 passes for a season-high 376 yards and a touchdown but was intercepted twice.
''Carson did a great job distributing the football around,'' Fitzgerald said, ''making good decisions, finding some guys and we got some big chunks on some pass interferences as well. It was nice to be able to have some explosiveness - something coach has really challenged us skill players on.''
Two players topped 100-yards receiving: Fitzgerald and Michael Floyd, who had five catches for 101 yards, including a leaping grab on the drive for the game-winning field goal.
For more NFL coverage: http://www.pro32.ap.org and http://www.twitter.com/AP-NFL