SANTA CLARA, Calif. -- For as much talent as the Seattle Seahawks have lost on defense over the past few weeks, they've still got quite a few playmakers left on that side of the ball.

C.J. Beathard can attest to that after the Seahawks hit and harassed him throughout their 24-13 victory over the San Francisco 49ers at Levi's Stadium on Sunday. Middle linebacker Bobby Wagner led the way with eight tackles, including two for loss, and an interception to strengthen what should be a solid case for defensive player of the year.

But this was a group effort, especially up front.

Seattle sacked Beathard three times, and eight players hit him at least once. The Seahawks held San Francisco to only 196 passing yards and gave 49ers fans little to cheer about until 67 seconds remained in the fourth quarter, when Jimmy Garoppolo made his San Francisco debut. Garoppolo took over when Beathard left the game with an injury, and he threw a touchdown pass as time expired.

The obvious qualifier applies. This defensive effort was against a one-win team with an overmatched rookie quarterback. But it was impressive nonetheless.

The Seahawks sacked C.J. Beathard three times and hit him 13 times as Seattle's defense controlled much of the game. AP Photo/John Hefti

What it means: The Seahawks remain a game behind the Los Angeles Rams in the NFC West standings with Los Angeles defeating the New Orleans Saints to improve its record to 8-3. Seattle is still struggling with slow starts on offense and an inability to run the ball. Russell Wilson was picked off on his first attempt Sunday, badly under-throwing Jimmy Graham. He wasn't sharp early but threw two touchdown passes in the second half. Wilson also ran for a score. Seattle's only touchdown in the first half came after Wagner's interception gave the offense a short field. Sunday's game followed a familiar pattern with Seattle's offense starting poorly then righting itself in the second half while the defense held strong throughout. It was again enough Sunday. Will it be enough against better opponents?

What I liked: The Seahawks were flagged for only six accepted penalties, which qualifies as a good day for this team. One of them -- an offensive pass interference call on running back J.D. McKissic -- was iffy at best. Penalties have been a problem for several seasons under Pete Carroll. It has been especially pronounced this year, as the Seahawks have been on pace to break the NFL's single-season record. One clean performance isn't nearly enough to declare it a problem solved, of course, but it's a good sign that the Seahawks went a week without getting in their own way with penalties.

Carroll proudly noted that Seattle only lost 35 yards via penalties in this game. "I'm probably over the top more than I should be for still six penalties," he said. "For us, that's way better, and the big, significant penalties didn't show up."

What I didn't like: The Seahawks still can't run the ball very well, not even against the NFL's worst run defense. San Francisco entered the game allowing an average of 133.5 yards per game, the most in the league. But Seattle could manage only 90 yards, with 25 of them coming from Russell Wilson. If the Seahawks couldn't get their running game going Sunday -- with Luke Joeckel back at left guard following his five-game absence -- will they at any point this season? Carroll said Mike Davis will be back this week. He didn't play Sunday because of a groin injury that cut short his impressive Seahawks debut last week.

What you need to know in the NFL

• Statistics

• Scoreboard

• 2017 schedule, results

• Standings

Fantasy fallout: Thomas Rawls has apparently fallen pretty far down Seattle's depth chart at running back. He was active for this game after being a healthy scratch Monday night, but he hardly played. Eddie Lacy led Seattle with an unspectacular 46 yards on 17 carries. McKissic started the game and added 46 yards on four carries and four receptions.

Graham scores again: Jimmy Graham's latest touchdown moved him into the Seahawks' record books. He now has 16 touchdowns since joining Seattle in 2015, which breaks a tie with Jerramy Stevens for most by a tight end in franchise history. Graham's eight touchdowns this season have all come over the past seven games. Everyone knew where the ball was going when Graham had a one-on-one with a defensive back at the 1-yard line. Instead of the fade pass that has become nearly automatic for Seattle, Graham ran a quick slant and Wilson hit him for an easy score. That made up for a drop Graham had on third down earlier in the game.

What's next: The Seahawks return home for a Sunday night game against the Philadelphia Eagles (10-1), who have been far and away the NFC's best team. That will begin the toughest stretch of Seattle's schedule. After Philadelphia, Seattle has a cross-country trip to visit the Jacksonville Jaguars for a 1 p.m. ET game, then host the Rams in a game that will go a long way toward determining the NFC West champion. Seattle's Christmas Eve game at the Dallas Cowboys the following week won't be easy, with running back Ezekiel Elliott expected to return from his suspension.