The 49ers’ first-team offense was on the field for 15 plays in Sunday night’s preseason win over Dallas, and two of those snaps resulted in a loss of yardage.

In each case, center Joe Looney, 24, and right guard Marcus Martin, 21, the least experienced members of the offensive line, appeared to be reading from a different playbook.

On their first drive, running back Carlos Hyde was stuffed for a 2-yard loss by defensive lineman Jack Crawford, who nearly went unblocked. What happened? Crawford was lined up over Martin, who took off at the snap to block a linebacker. It appeared Looney was supposed to handle Crawford, but reacted too late.

On the 49ers’ second drive, Colin Kaepernick was sacked for a 14-yard loss by defensive end Randy Gregory after the pocket completely crumbled. There was blame to spread around, but part of the issue involved the inability of Looney and Martin to adjust to a stunt by linemen Davon Coleman and Ken Bishop. After Bishop looped by him and was among a host of Cowboys meeting at Kaepernick, Martin clapped his hands in frustration.

On Tuesday, one day after head coach Jim Tomsula said the starting offensive line was not “settled,” guess what happened? Correct: The 49ers’ front five, which had been unchanged in the first two preseason games, was slightly shuffled in practice, and the change involved Looney and Martin.

Martin took first-team snaps at center, where he made seven starts as a rookie last year, and rookie Ian Silberman assumed his spot at right guard. (Looney played guard and center on the second team.) Silberman, a sixth-round pick from Boston College, periodically has taken first-team snaps during training camp.

It’s possible, of course, that the 49ers will enter the regular season still a bit unsettled along the offensive line. Starting center Daniel Kilgore remains in an orthopedic boot after undergoing a second surgery last month, connected to the broken ankle he suffered in October.

It appears increasingly unlikely that Kilgore will be ready for the regular-season opener Sept. 14, which could mean the 49ers will enter the season with three new starters among the front five. (Left tackle Joe Staley and left guard Alex Boone are the lone holdovers.)

Tony Avelar/Associated Press

On Sunday, the first-team unit largely excelled in run-blocking. On their two drives, the 49ers had 48 rushing yards and averaged 6 yards a carry.

On his six dropbacks, however, Kaepernick was sacked once and also was forced to throw the ball away when defensive end DeMarcus Lawrence speed-rushed inside right tackle Erik Pears and applied pressure.

The 49ers might have offered clues Sunday about how they plan to deal with their potentially leaky pass protection. Kaepernick was in the shotgun on five of his six dropbacks and often got rid of the ball quickly: He took one- or two-step drops on three of his five passes.

Wilhoite activated: Inside linebacker Michael Wilhoite was removed from the non-football injury list and immediately assumed the starting spot he had last season.

Wilhoite, who had been sidelined throughout training camp with a leg injury, plans to play Saturday night against the Broncos.

It’s clear that the 49ers view Wilhoite, an undrafted free agent from Washburn University, as an unquestioned starter.

“In the past years, if I was hurt, I probably wouldn’t even be here,” Wilhoite said. “It’s nice to know they value me, and see me as a guy who can come in and play right away.”

Briefly: Kenneth Acker took the first-team snaps at right cornerback after Keith Reaser, a fellow 2014 draft pick, started there Sunday. Reaser entered as the nickel cornerback. … Running back Kendall Hunter, a year removed from a torn ACL, took snaps in team drills but wasn’t sure whether he would make his preseason debut against Denver.

Eric Branch is a San Francisco Chronicle staff writer. E-mail: ebranch@sfchronicle.com Twitter: @Eric_Branch