SANTA CLARA, Calif. -- No Kyler Murray? No DeAndre Hopkins? No A.J. Green? No problem for the Arizona Cardinals.
Being down three of their top offensive stars before the game and then losing starting running back Chase Edmonds to an ankle injury after their first offensive play didn't slow the Cardinals against the San Francisco 49ers on Sunday at Levi's Stadium.
Arizona routed its NFC West rival 31-17 to improve to 8-1, showing the Cardinals can win -- and win big -- without some of their top playmakers.
"When you lose some of your best players it's not easy," coach Kliff Kingsbury said. "But that's how this league is. Guys stepped up, made big plays all day."
Colt McCoy started in place of Murray, who missed the first game of his three-year career, and the Cardinals' offense didn't appear to miss a beat. McCoy threw for 249 yards and a touchdown.
McCoy took first-team reps all week in place of Murray, who is nursing a sprained left ankle, and began to get a feeling he would be the starter Friday. After he took the reps during the Cardinals' Saturday walk-through before their flight to the Bay Area, McCoy knew, saying it didn't need to be said.
"I thought Kliff called a great game," McCoy said. "He got me in a rhythm early, got me some completions early, and then it kind of slowed down for me and I felt good. I told the offensive line, like, 'Look, I'm getting the ball out. Receivers, I'm getting the ball out. I'm not gonna hold onto this ball and take sacks.' This front is good. They've played a lot of good football. When they get going like that, they're hard to beat. So, I just wanted to get the ball out."
With Hopkins and Green out, Arizona leaned on receivers Christian Kirk, Rondale Moore and Antoine Wesley. Kingsbury said Hopkins and Murray were both progressing in recovery from their injuries -- a hamstring for Hopkins and the ankle for Murray -- but weren't "where we want them to be." Kingsbury didn't want to predict whether either would play next week.
Kirk finished with 91 yards on six catches, and threw his first completion since high school on a trick play that Kingsbury first ran at the University of Houston named "Fifth Ward" for the area of the city where the school is located. The play had been practiced for weeks with Hopkins throwing to Green. With both out, Kirk was called on to throw to Wesley, completing a 33-yarder. Wesley caught three passes for 62 yards.
Arizona's defense kept thriving without J.J. Watt, who was put on injured reserve on Saturday. It had five sacks for the third time this season, the most in the NFL, and held the Niners to 39 rushing yards.
Outside linebacker Markus Golden had a career-high three sacks, giving him nine this season, and Chandler Jones had his first sack since getting five in Week 1. Sunday's sack helped Jones set the franchise record with 67, passing Freddie Joe Nunn, who had 66.5 from 1985 to 1993. Jones honored Nunn, who died on Oct. 16, by wearing a shirt with his picture emblazoned on it. Jones said he wore the shirt against the Green Bay Packers in Week 8 in case he broke the record then.
The Cardinals had three takeaways -- two fumbles recovered by linebacker Jordan Hicks that were turned into 10 points and an interception by safety Budda Baker.
"That's what we practice," Golden said. "You got to give it to the coaches. All the coaches go good at making us get at the ball and try to punch the ball out all the time. That's what we've been doing and it's been carrying over to the game."
Arizona also lost left guard Justin Pugh to a calf injury, and McCoy said after the game that right guard Max Garcia was lost to an injury, too.
But the story of the Cardinals' offense Sunday was running back James Conner. Picking up the slack for Edmonds, Conner set two career highs against the 49ers. He had three touchdowns for the first time, and his 45-yard scoring catch early in the third quarter was the longest reception of his career.
Conner said that when Edmonds went out, he knew he was going to be leaned on quite a bit and that the rest of the game would be a mental test. During the week leading into Sunday's game, he tried to picture himself having a big performance.
Ultimately, Conner said, he was just doing what the Cardinals asked him to do.
"We had some screen calls, we knew that we could possibly hit bit big on the screens, so just got to take advantage of them," he said.
He finished with 96 rushing yards and two touchdowns on 21 carries, and 77 receiving yards on five catches.
Kingsbury didn't know Conner had the receiving skills he does when Arizona signed him in March, thinking he was more of a downhill runner. Kingsbury started noticing Conner's route running during training camp.
"He's been above and beyond anything I think any of us could have expected, and just the work ethic, the approach to the game each and every day, it's phenomenal," he said.
The Cardinals are 8-1 for the first time since 2014 and 5-0 on the road thus far, but McCoy said they're still taking the season one game at a time and not looking ahead.
"We lost Pro Bowlers on the outside," McCoy said. "They didn't get to play this week, so to come on the road in the division, I've been in the league a long time, no matter what division you're in, that's hard to do."