Glendale, Ariz. — Jimmy Garoppolo threw for 317 yards and four touchdowns and the San Francisco 49ers reached the halfway point of their season undefeated, beating the Arizona Cardinals 28-25 on Thursday night.

San Francisco (8-0) fell behind 7-0, but responded with three touchdowns —one as time expired in the second quarter after Cardinals coach Kliff Kingsbury called a timeout and gave the 49ers a second chance on fourth down —to take a 21-7 halftime lead.

The 49ers were in control until about five minutes left in the fourth quarter, when Andy Isabella caught a short pass and sprinted for an 88-yard touchdown to help the Cardinals pull to 28-25.

But the 49ers were able to run out the clock on their ensuing offensive drive to end Arizona’s comeback. San Francisco’s Emmanuel Sanders caught seven passes for 112 yards and a touchdown.

Arizona (3-5-1) lost its second straight game. Rookie quarterback Kyler Murray threw for 241 yards and two touchdowns.

The Cardinals came into the game without their top two running backs, David Johnson and Chase Edmonds, who were battling injuries.

Kenyan Drake —who was acquired by the Cardinals on Monday in a trade with the Miami Dolphins —ran for 36s yard on the first play of the game and capped the opening drive with a 4-yard touchdown run. He finished with a team-high 110 yards rushing and 52 yards receiving.

Arizona looked as if was about to escape the first half trailing 14-7 after San Francisco’s Jeff Wilson Jr. was stopped on fourth down just shy of the goal line with a few seconds remaining in the first half.

But there was one major problem for the Cardinals: Kingsbury called a timeout just before the play began.

The 49ers converted on their second chance when Garoppolo hit Sanders for a 1-yard touchdown pass and a 21-7 lead.

Cancer scare revealed

Washington tackle Trent Williams revealed a cancer diagnosis that played a part in his lengthy holdout and distrust of the team’s medical staff and the organization.

Williams said he told the team of the medical issue six years ago, and the growth on his head grew substantially over time. The 31-year-old said he had a tumor removed from his skull and needs to get checked out every six months to make sure he’s OK.

The seven-time Pro Bowl selection had multiple surgeries during the offseason related to the tumor’s removal and remained away from the team during that time. Williams said it got pretty serious and he was “told some scary things” by doctors that changed his outlook on life.

The riveting almost 20-minute discussion with reporters unfolded with Williams, selected fourth overall by Washington in the 2010 draft, seated by his corner locker stall.

“It was a lot of emotions; I’m not going to lie and say it wasn’t,” Williams said of returning to the team's practice facility on Tuesday shortly before the NFL trade deadline.

The team released a statement saying they’ve requested the NFL Management Council convene a joint committee with the Players Association to review Williams’ medical records and the care given to him. In the statement, the team said it continues to “prioritize the health and well-being of our players and staff.”

Williams’ feelings were not of fondness, but frustration over the team’s medical personal, according to Williams, downplaying the growth’s severity over the years only for a local Northern Virginia hospital to eventually provide a more serious diagnosis.

“I almost lost my life. Seriously, I almost lost my life,” Williams said. “You’re 30 and coming off seven straight Pro Bowls and a doctor tells you to get your affairs in order. It’s not going to sit well with you. It still doesn’t. It’s a scary thing to go through. Think how you describe to your 9-year-old, your 5-year old that daddy might not be here. It’s tough.”

Williams said extracting the tumor was the only acceptable path even though that approach meant “losing 30 percent of my scalp.” Radiation treatment “would have put a cap on my life I think 15 years was the most I would have had after I started chemo. So I had to cut it out,” Williams said.

Williams failed his team physical this week because of discomfort with a standard helmet. Interim coach Bill Callahan said the team would seek an alternative. Washington has a two-week exemption before needing to put Williams on the active roster.

Such frightening thoughts put playing football in a proper perspective, but “I still love it,” Williams said. That’s the sport. Playing for Washington again is another story.

Asked if he envisioned playing for Washington again, Williams said, “We’ll see how this helmet thing turns out.”

Jets' Bell peeved

Le’Veon Bell (Michigan State) sent a text to Adam Gase, telling the New York Jets coach they needed to talk.

The star running back didn’t like how little he was used in a 29-15 loss at Jacksonville on Sunday, and Bell needed to make sure Gase knew what he was feeling.

“I was a little frustrated,” Bell said. “I’m always frustrated at a loss, but this was a little different because I wasn’t involved and we lost.”

Bell carried the ball eight times for 23 yards and had three catches for 12 yards. Hardly an ideal workload for your top playmaker, especially on an offense ranked dead last in the league in total yards.

He was so angry, he acknowledged that he left the locker room after the game without speaking to reporters because he didn’t want to make headlines with emotional comments.

“We lost the game and I didn’t feel like I was involved,” he reiterated. “Plus, I feel like that was a game we kind of let go. I didn’t want to say anything I would regret because I was angry at the time.”

That all led to the text and one-on-one conversation with Gase, and the coach listened to everything Bell had to say.

“We had a good little talk because I just want to be one of the main reasons for helping the team win,” Bell said. “I don’t like not being used and we end up losing the game. I felt like I couldn’t help my team out. So me and him had that conversation. Hopefully, things are better from here on out.

“But, I obviously want to help my team win. That’s why I came here in the first place. I want to be involved and I want to help the team win games.”

That has been a tough task, even when Bell has gotten lots of touches for the 1-6 Jets.

He leads the team with 349 yards on 108 carries, but his 3.2 average is a career low. Bell also has just 32 catches for 187 yards. He has only two touchdowns — one rushing and one receiving.