4. Penalties haunted San Francisco, registering an alarming 18 for 216 yards – something Shanahan will assess following Saturday's game.

"Anytime you have a game where you have 18 penalties and the other team has five, we should look at it hard," Shanahan said. "It's very hard to win that way. It was very frustrating. We'll look at them hard and see if all of them are stuff that we can control."

5. It was a big night for Robert Saleh, whose defense managed to keep Dallas out of the end zone. On Dallas' final drive, a defensive pass interference call on Dontae Johnson moved the Cowboys to the 49ers 4-yard line. The third-string defense forced a turnover on downs to seal the 17-9 victory.

6. The 49ers limited the Cowboys to just three field goals on the day and forced a fumble. Takeaways were a point of emphasis this offseason, as San Francisco recorded a league-low seven in 2018. Linebacker LaRoy Reynolds got pressure on Dallas' quarterback Mike White and forced the ball out of his hands. Undrafted rookie Azeez Al-Shaair recovered the fumble. Al-Shaair also made a big third down stop in the fourth quarter that drew praise from the entire sideline.

7. In the battle for the primary backup job, Nick Mullens opened the first half and completed 11-of-17 passes for 105 yards, one touchdown and one interception for a 76.8 quarterback rating. C.J. Beathard played the majority of the second half and finished 13-of-17 passing for 141 yards, one touchdown and an interception for a passer rating of 95.5. Undrafted rookie Wilton Speight closed out the final six minutes of the game and went 2-of-3 passing for 10 yards.