Phoenix • An eye for an eye?

That’s how Donovan Mitchell and Devin Booker competed in Monday night’s game in Phoenix, one that the Jazz pulled out with a win thanks to a Mitchell free throw, 96-95.

The two stars went back and forth, competing for spots in the hierarchy of the best young guards in the Western Conference. Yes, the on-court battle happened; Mitchell went 9 for 24 from the field for 25 points in the game, Booker went 9 for 16 for 21 points. Mitchell had a critical steal at the end of the fourth quarter of a Booker pass, one that led to three points for Bojan Bogdanovic.

He also had the game-clinching drive. With 7.2 seconds left, Mitchell attacked the paint with a head of steam, drawing a Booker foul with just 0.4 seconds left. Mitchell made the first, missed the second and sealed the win.

But the most Biblical part of the night was when the two traded reviewable plays in the third quarter. Booker negotiated one of Rudy Gobert’s screens by throwing his hand into the Frenchman’s nether-section. A few minutes later, Mitchell had the same call on a core hit to center Aron Baynes.

A midsection shot for a midsection shot? Harder to find that in the best-selling book.

Bogdanovic continued scoring early and often for the Jazz with 11 points in the first quarter, getting to the line six times. He showcased his inside-out prowess, nailing a contested three then finding his way to the rim.

The second quarter was remarkable: The Jazz had 10 turnovers in the quarter, revealing just how sloppy the offense got. Time after time, lazy passes or loose dribbles saw the ball going the other way. The Suns were in the bonus with eight and a half minutes left to go. And worse, the Jazz shot just 20% in the quarter, making only four of their 20 shots.

“No one plays well every night, but I think for us to understand when we play well, why; and if we’re not playing well, why,” Jazz coach Quin Snyder said. “When you dig down in those things and try to understand, that’s what continues to illuminate that path, and that’s where we are.”

And yet, somehow, the Jazz tied the quarter 18-18, taking a seven-point lead into halftime. Credit goes to the Jazz’s defense. As bad as the offense looked, the Jazz’s defense was even better. The Suns in the first half shot just 28% from the field and 22% from three.

Going into the fourth quarter, the two teams were tied at 70. But with Mike Conley in foul trouble and Mitchell getting a rest, the Suns went on an 8-1 run to begin the quarter that put the Jazz behind the 8-ball.

It was a different Suns opponent than the Jazz have seen in previous years. Utah has won its last seven contests against Phoenix, but this team fought with much more verve on both ends of the floor. They executed sets, passed the ball unselfishly and defended with real toughness, even without 2018 No. 1 overall pick DeAndre Ayton.

“You can see players that are really competing and competing for one another, and that makes any team good,” Snyder said.

The Jazz came back, nonetheless. As they continued to attack on offense and hit the glass on defense, the Jazz forced fouls down the stretch. Gobert hit several critical free throws late, going 11 of 12 from the line, along with his 18 rebounds.

The rest of the Jazz struggled, though. Conley again couldn’t find his shot, going 0 for 7 from the field and scoring just one point, while adding only one assist. Rubio played well in his first game against the Jazz since departing this summer. He finished with 10 points on 4 of 9 shooting, adding 10 rebounds and eight assists.

But in the end, Mitchell’s final play got the Jazz a critical early-season win.