CHICAGO -- For all the big shots he hit, Devin Booker was most proud of the one he blocked.
Booker looked just fine after sitting out a game because of inflammation in his right big toe, nailing five 3-pointers and grabbing nine rebounds. But the play that most stood out to him came in the final minute.
"That's crunch time, so whatever I had to do to win," he said.
T.J. Warren scored 25 for Phoenix. Alex Len had 13 points and tied a career high with 18 rebounds after not playing in two of the previous three games. The Suns dominated on the glass 57-41 while snapping a three-game losing streak.
"I'm proud of this team," Booker said. "We fought hard tonight. A lot of energy, talking on defense. Things that we needed to be working on, we did today."
The rebuilding Bulls are a league-worst 3-16 after dropping their sixth straight.
Justin Holiday made a career-high six 3-pointers on his way to 25 points for Chicago. Dunn added a personal-best 24 points, hitting all four from long range, and eight assists.
"It's tough on everybody," Dunn said. "Everybody, from the coaching staff to the players, we all come from a winning mentality in high school and college, so it's definitely hard. As a group, we have to understand we're young and we have to look at the future. There's going to be something good at the near end."
Phoenix came out on top after Chicago cut a 15-point fourth-quarter lead to three in the final minute.
Bulls rookie Lauri Markkanen hit a 3 to make it 102-99 with 22.5 seconds left. But Warren hit two free throws and blocked a 3 by Markkanen to help preserve the win.
The Suns went on a 12-point run in the third to go up 63-49, with Ulis hitting a 3 and converting a three-point play and Booker nailing two from long range.
The Bulls cut it to three heading into the fourth. But the Suns went on a 14-2 run to start the quarter, with Troy Daniels nailing a 3 to make it 87-72 with 8:22 left.
"We hung in there when our shots were not going down (in the first half). We talked about making them call the first timeout. I'm sick and tired of calling the first timeout in quarters and they come out with a 7-0 run to take control and put it up to a double-digit game. Then in the fourth quarter, they get off to a 14-2 start. It's just so hard to continue to climb uphill, especially late in the game like that." -- Bulls coach Fred Hoiberg.
Suns: The Suns swept the Bulls for the first time since the 2007-08 season. ... Booker has eight 30-point games this season.
Bulls: F Nikola Mirotic attended a game for the first time since a preseason altercation with teammate Bobby Portis left him with several broken bones in his face as well as a concussion. He remains sidelined with the injuries from the altercation at practice on Oct. 17. Hoiberg said the two have not talked as far as he knows. Mirotic started practicing with the team again on Monday, and they did go against each other at times. ... Mirotic and F Zach LaVine (torn ACL) will practice with the G League's Windy City Bulls while Chicago heads to Denver for a game on Thursday.
Suns: Visit Detroit on Wednesday.
Bulls: Visit Denver on Thursday.
More AP NBA: https://apnews.com/tag/NBAbasketball
Trail Blazers, Nets affected after Nurkic's injury
Royce Young explains the moods in the Trail Blazers and Nets' locker rooms after Jusuf Nurkic's injury.
Lillard: 'Sick to my stomach' after Nurkic's injury
Damian Lillard shares his friendship with Jusuf Nurkic off the court and says he "hates to see" his friend and teammate down with an injury.
Curry: It was tough to finish game after Nurkić injury
Seth Curry is excited about clinching his first playoff appearance with the Trail Blazers, but his focus is on Jusuf Nurkić after his serious leg injury.