A 49ers team that failed to convert its first 10 third-down opportunities last week began Sunday's game seven-for-seven in that category with two of those conversions going for touchdowns.
But while they had all the momentum early in the game, the Cowboys scored on their last two drives of the half to knot the score 14-14.
The 49ers' first touchdown came in the quarter when Blaine Gabbert, facing third and 7, had plenty of time to throw and found Jeremy Kerley all alone crossing the field. Kerley caught the pass, dodged a Dallas defender and put the 49ers up 7-0.
In the second quarter it was Carlos Hyde -- he delivered the team's pre-game speech -- who on 3rd and 1 from the Dallas 3 yard line, took a step forward, didn't like what he saw, then scooted to his right and found a wide-open path to the end zone. The score was Hyde's fifth of the season.
Premium content for only $0.99
For the most comprehensive local coverage, subscribe today.
In sharp contrast to his last two games, Gabbert was not only accurate but ambitious in his throws, passing the ball well beyond the down markers on third down. He is 8-11 for 112 yards and a 135.4 passer rating.
He's also run the ball more than he has since the 49ers' Week 1 against the Rams. Gabbert has seven carries for 21 yards; Hyde has nine carries for 30 yards.
The 49ers defense, meanwhile, was playing well early in the half. A third-down sack of Cowboys quarterback Dak Prescott, however, was wiped away by a questionable unnecessary roughness call against Jaquiski Tartt. Prescott seemed to be struggling to gain extra yardage when Tartt struck him to the ground.
The penalty gave the Cowboys a first down, and three plays later Prescott connected on a 20-yard touchdown pass to Terrance Williams with Tramaine Brock in coverage.
After the 49ers were forced to punt -- and Bradley Pinion shanked the ball off the side of his foot -- Prescott put together an 11-play drive that ended with him finding receiver Brice Butler in the left side of the end zone. Butler started the game in place of injured Dez Bryant.