The American superstar clocked a world record 49.82sec to beat his Beijing Olympic rival by 13-hundredths of a second.
Phelps had beaten Cavic by just one one-hundredth of a second in Beijing, and the Serbian turned this World Championships showdown into a grudge match.
Phelps's victory celebration was fierce. When he saw his time, he hoisted himself on the lane rope and yelled, smacking the water in triumph.
"You can tell after my celebration that it satisfied me a little bit," Phelps said.
Cavic had looked to have the upper hand heading into the final. He broke Phelps's world record in the semi-finals with a time of 50.01.
The Serbian also ratcheted up the rhetoric when he offered to obtain one of his new-generation polyurethane suits for the American, who has stuck to his older model.
"It doesn't matter about the suit, it's about how you train," Phelps said.
Cavic also broke 50 seconds, but his 49.95 was good enough only for silver.
"Michael Phelps is Michael Phelps, and he does what he does - and he did," Cavic said of the swimmer who electrified the Beijing Games last year with an unprecedented eight gold medals.
Brazilian Cesar Cielo joined a select group with his triumph in the men's 50m freestyle.
His win in 21.08sec made him the third man to complete the 50-100m free sprint double at the World Championships.
Coventry lowered her own previous record of 2:05.24, set in winning Olympic gold in Beijing.
Russian Anastasia Zueva was second in 2:04.94 - also under Coventry's previous record - and American Elizabeth Beisel third in 2:06.39.
China's women won the 4x100m medley relay in a world record of 3:52.19. Zhao Jing, Chen Huijia, Jiao Liuyang and Li Zhesi delivered the victory with Olympic champions Australia second in 3:52.58 and Germany third in 3:55.79.
Olympic champion and world record-holder Rebecca Adlington was shut out of the medals in fourth.
One more world record fell in semi-final action, as Briton Liam Tancock clocked 24.08sec to lead the way into the final of the men's 50m backstroke.
The night's four world records took the tally for the week to 39 with one day remaining - but as so often Phelps was the undisputed star.
As in Beijing, Cavic used his early speed to take the lead at the turn.
Phelps was fourth at the 50m mark - better than his seventh in Beijing - and used his vaunted finishing strength to overhaul Cavic in the final 25m.
"I set it up perfectly, it was exactly what I wanted to do," said Phelps, who has also won gold in the 200m fly and two relays this week.
"I had to be out in that first 50m within striking distance and I went out in 23.3sec, that's the fastest I've been out in, I haven't been within half a second of that.
"It's really gratifying."
Source: AFP Global Edition