SANTA CLARA, Calif. -- It works.

The vaunted Kyle Shanahan offense demonstrated what it is capable of in Sunday's 31-21 win over the New York Giants, the San Francisco 49ers' first victory of the season.

OK, sure, it was against the same defense that was last seen stepping aside at home while the Los Angeles Rams rolled up 51 points.

But it sure beats the 30 points the 49ers had put up the previous three weeks combined, which had prompted many of the so-called faithful to spend their sunny November Sunday at home finally taking down their Halloween decorations.

"It was easier to wake up this morning," Shanahan beamed Monday. "It was more fun coming in just knowing that it was fun to see the guys today.

"It was nice to come in today just looking forward to addressing the team. Didn't have much to say."

What went right? How much time you got?

C.J. Beathard looked like Pete Beathard, throwing for 288 yards on 19-for-25 accuracy. His first-half passer rating of 157.8 was the highest for a 49ers quarterback in five years.

Receivers caught balls both behind and in front of defenders; running backs gashed the Giants both inside and out; and the offensive line made it all possible by pushing their opponents out of the way.

It bears repeating: The Giants were in town.

The Shanahan offense figures to get more resistance the next time it takes the field when, well, at least 11 men with a pulse will be standing between the offense and practice touchdowns.

That's because the 49ers will be seeing themselves following a bye.

The question is: When the 49ers reappear to face the rival Seattle Seahawks after the bye, who will be the starting quarterback: Beathard or Jimmy Garoppolo?

Shanahan refused to predict the future Monday.

"We'll see how practice goes," he said. "C.J. played pretty well. I thought he had his best game. I think he's gotten better each week in practice, and I think it showed in the game the most.

"We'll see how Jimmy responds this week. We'll get to work more one-on-one with him, get a little extra practice and see how it goes."

--One had to wonder if what transpired Sunday had been possible if the club, as they did with linebacker NaVorro Bowman and cornerback Rashard Robinson, had cut tackle Joe Staley loose at or around the trade deadline.

The 49ers' offensive line was in total disarray the previous week in a home loss to Arizona while Staley, the anchor at left tackle, had been out with a broken orbital bone.

Expected to get a three-week break to deal with the injury (including the bye this week), Staley instead rushed back onto the practice field after missing just one game.

"For him to come out there (Sunday), I think pumped a lot of guys up because that's not something he had to do by any means," Shanahan gushed after the game. "It was something he wanted to do and we really appreciated it.

"He definitely caught me off guard this week when he sent me a text on Tuesday telling me he was playing. I told him not to mess with my emotions when he did that, because I've been told that before and then it doesn't happen. So I tried to slow-play it all week to not get too excited about it."

--The 49ers caught another break -- another bad one -- at the safety position Sunday when Adrian Colbert suffered a broken thumb.

Colbert was starting in place of Jaquiski Tartt, who suffered a broken arm in last week's loss to Arizona.

Tartt in turn had been replacing regular starter Jimmie Ward, who broke his arm in the Week 8 loss at Philadelphia.

Both Tartt and Ward are on injured reserve.

Shanahan reported Monday that while Colbert will eventually need surgery, no decision has been made about his possible availability for the 49ers' next game following this week's bye.

The 49ers listed no backup free safety on their depth chart Sunday.

NOTES: QB C.J. Beathard became the first rookie quarterback in 49ers history to throw two touchdown passes of 45 or more yards in the same game Sunday against the New York Giants. Beathard's 83-yard hook-up with WR Marquise Goodwin was the longest for a rookie in club history. Beathard also scored on an 11-yard run, his third rushing touchdown of the season, and suffered a bruised right thumb. X-rays taken Monday were negative. ... RB Matt Breida recorded the longest touchdown run by a 49er this season with a 33-yarder in Sunday's win over the New York Giants. The run was the longest of his career. ... WR Marquise Goodwin caught an 83-yard touchdown pass in Sunday's win over the New York Giants. It was Goodwin's first touchdown catch of the season, and the longest for a 49er since WR Brandon Lloyd hauled in an 83-yarder against the St. Louis Rams in 2014. ... TE Garrett Celek recorded a career-best, 47-yard receiving touchdown in Sunday's win over the New York Giants. It was the eighth TD of Celek's career and his second of the season. ... G JP Flynn was moved to the 49ers' practice squad injured list Monday. The undrafted rookie has been on the club's practice squad ever since being waived on the eve of the regular season. ... DT Tony McDaniel was released by the 49ers on Monday. The 32-year-old had played in the last four games, recording a total of five tackles. He was on the field for 12 defensive snaps in Sunday's win over the New York Giants. ... DE Ronald Blair III sacked New York Giants QB Eli Manning twice in Sunday's win. The first multi-sack game of Blair's career brought his career total to five. ... OLB Elvis Dumervil added to his team lead with a sack in Sunday's win over the New York Giants. Dumervil has 4.5 sacks this season. ... FS Adrian Colbert (broken thumb) was able to play through the injury Sunday to participate in all 66 defensive snaps in the win over the New York Giants. The 49ers announced Monday the injury will require surgery at some point. No decision has been made as to when that will be or whether Colbert might be able to keep playing.


--PASSING OFFENSE: A-minus -- They went deep. They exploited weaknesses. They kept their quarterback off his back. The 49ers were almost everything their fans had dreamed when Kyle Shanahan was hired. Almost everything? The great unknown remains: Can they do this, maybe even better, with Jimmy Garoppolo at quarterback?

--RUSHING OFFENSE: B-plus -- Make no mistake: This was a pass-driven offense Sunday. The season-best rushing numbers were good, too, but mostly in a complementary role. Still, it was nice to see that Carlos Hyde and Matt Breida could co-exist, with Marquise Goodwin and C.J. Beathard adding to the fun.

--PASS DEFENSE: B -- Allowing 273 yards and two touchdown passes to a team missing its top wideouts is nothing to applaud. But the 49ers did a good job in limiting the big play, stopping the Giants often enough to get a healthy lead and were at their worst in a totally unfamiliar position -- playing soft coverage with a big lead. Maybe they can start practicing that now.

--RUSH DEFENSE: C-plus -- Again, the 49ers' passing game gets credit here. It got the lead, prompting the Giants to panic and forget about a running game that was generally effective. Allowing 5 yards per carry to an attack led by Orleans Darkwa won't get it done on most Sundays.

--SPECIAL TEAMS: C-plus -- A bit of grading on the curve here. When the offense and defense have been bad on most weeks, the slightly-better-than-adequate special teams have moved to the head of the class. But yet another (yawn) pretty good effort pales in comparison to the club's other units for a change, so maybe it's time to start asking for more.

--COACHING: A -- Anyone complaining about Shanahan this season clearly hadn't seen the mess the Giants' Ben McAdoo has created. Yikes. These Giants performed even worse than the Giants that ruined the San Francisco Bay Area baseball season, and that says a lot. New York football fans are now looking forward to baseball. For maybe the first time all fall, Bay Area fans aren't.

Comment about 49ers offense clicks in first victory