SANTA CLARA, Calif. — The San Francisco 49ers pulled out a 30-12 victory over the New York Giants on Thursday night, and while the 49ers may not have looked unbeatable, they did more than enough to handle a banged-up opponent.

The Giants kept hanging around until the fourth quarter, when the Niners put it away late. Here’s what to know about each team’s performance:

San Francisco 49ers

It wasn’t always pretty, and it wasn’t as easy as the final score might indicate, but the 49ers took care of business.

On a short week, the Niners, without injured receiver Brandon Aiyuk (shoulder), labored through the win. While the Giants were short-handed in their second game of a West Coast swing, there’s no need for the 49ers to apologize for another victory as San Francisco moved to 3-0 for just the second time in the past 25 years.

But if this win taught anything, it’s that Aiyuk’s value to the Niners should not be discounted. The Giants entered this game having blitzed more than any team in the league since the start of 2022. They lived up to that reputation, relentlessly sending extra rushers at 49ers quarterback Brock Purdy.

Those blitzes were effective in the first half, not only in pressuring Purdy but in causing him to be off target and forcing Niners coach Kyle Shanahan to resort to more screens and quick passes instead of the intermediate routes he often prefers.

That is where Aiyuk would have made a difference. Dating to the start of last season, Aiyuk has 50 catches (tied for 8th in the NFL) for 679 yards (tied for 9th) against man coverage. Nobody on the Niners more consistently and quickly beats man coverage than Aiyuk.

In the second half, fellow wideout Deebo Samuel (six catches for 129 yards and a touchdown) and tight end George Kittle (seven receptions for 90 yards) helped pick up the slack, and the Niners defense dominated the Giants.

To be sure, the 49ers did the right thing keeping Aiyuk, whom they’d like to sign to a contract extension in the offseason, out Thursday night so he can use the extra rest to get healthy for the long haul. But his absence should also only bolster how much they value him for the rest of this season. And beyond.

QB breakdown: With defenders constantly in his face, Purdy had a bit of an odd night, though his final numbers turned out quite good. Purdy finished 25 of 37 for 310 yards with two touchdowns for a passer rating of 111.3. Purdy put the ball in harm’s way a handful of times and was fortunate to avoid turnovers in the first half, but he was outstanding on third down and came on late in the game. It wasn’t his best performance, but Purdy is now one of only four quarterbacks to start a career with at least eight straight regular season wins in the Super Bowl Era (since 1966).

Purdy was blitzed on 74% of his dropbacks, the highest blitz rate faced by a QB with 30 dropbacks since Colin Kaepernick in 2013 (88% vs Cardinals). The 29 blitzes Purdy faced were more than double his previous high (14). Purdy’s 236 passing yards against the blitz were the most by a passer since Aaron Rodgers in 2021.

Troubling trend: The Niners entered the night tied for the fifth-most penalties in the league and did nothing to assuage those concerns against the Giants. San Francisco finished with six penalties for 71 yards, including two for 37 yards that set up New York’s first touchdown of the game.

Eye-popping stat: After scoring on a four-yard run in the first half, Niners running back Christian McCaffrey now has a touchdown in 12 consecutive games (including playoffs), tying him with Jerry Rice for the longest streak in franchise history. Lenny Moore has the record for most consecutive games with a TD — including playoffs — at 17. — Nick Wagoner

Next game: vs. Cardinals (4:25 p.m. ET, Oct. 1)

New York GiantsThis wasn’t a no-contest like the 40-0 opening loss to Dallas. The Giants kept it within a score into the fourth quarter.

Ultimately, they couldn’t beat the more talented 49ers, especially with a couple bounces and costly penalties going against them. But it wasn’t for a lack of effort. The Giants would’ve had to play a perfect game in order to win on the road in prime time without four starters (running back Saquon Barkley, left tackle Andrew Thomas, left guard Ben Bredeson and outside linebacker Azeez Ojulari). They didn’t, as expected.

It now puts a premium on the Monday, Oct. 2 home game against the Seattle Seahawks, a game New York was perhaps eyeing. That was always the one they needed to win in order to survive this early gauntlet. Splitting their West Coast trip (win at Arizona, loss at San Francisco) is hardly debilitating.

Pivotal play: The roughing-the-passer penalty on Giants defensive lineman Leonard Williams with 1:51 left in the second quarter. San Francisco had a third-and-12 while leading 10-3 at the Giants’ 20-yard line with just under two minutes remaining in the half. Williams beat his man and hit Purdy as the ball was released. The penalty likely was called because Williams landed on Purdy with all his weight. It was a game-changing call because it gave San Francisco a first-and-goal instead of a fourth down. McCaffrey ran it in for a six-yard touchdown on the very next play to make it 17-3.

Bold prediction for next week: The Giants play on Monday night, and that gives Barkley and his high ankle sprain another 11 days to get right. But … he still won’t be ready. We’ve seen this story before. Barkley always wants to play and pushes to get back sooner than expected. However, it’s in his — and the team’s — best interest for the standout running back to get right before returning.

Eye-popping stat: The 49ers converted a third-and-15 and third-and-13 on screen passes on the same drive in the second quarter. It ended with a nine-yard touchdown pass to Ronnie Bell and a 10-3 lead. There were 25 screen passes attempted on third-and-10+ the first two weeks of the season. Only one was converted for a first down, until Thursday night. — Jordan Raanan

Next game: vs. Seahawks (8:15 p.m. ET, Oct. 2)