Dylan Strome and Alex DeBrincat each had a goal and an assist, and Kevin Lankinen made 27 saves for the Blackhawks (23-32-9), who had lost three straight (0-2-1).
Sam Carrick scored two goals in his 100th NHL game, and John Gibson made 24 saves for the Ducks (27-28-11), who have lost eight in a row (0-6-2).
"Playing 100 games is something that I'm super proud of," Carrick said. "If you look at it, I'm 30 years old. It's my 10th year as a pro, so it might not seem a lot for some people, but to me it's a pretty big deal, and more importantly, my family, too."
Strome redirected a shot pass from Riley Stillman at 16:10 of the third period to give Chicago a 3-2 lead.
DeBrincat scored his 35th goal of the season into an empty net at 18:57 for the 4-2 final.
"I like the fact that we didn't get rattled when they scored to tie it up [at 13:28 of the third period]," Chicago coach Derek King said. "We felt comfortable with our game. We kept going at it and got that big goal at the end there."