Cavendish was seeking his fifth stage victory of this Tour which would have moved him clear of Eddy Merckx as the winner of a record 35.
But it was not to be as the Manxman got squeezed out on the run to the line and Merckx's compatriot took his third stage win of this Tour - completing the set with a sprint after his successes in the mountains and in Saturday's time trial.
Cavendish had to check his sprint more than once as he struggled to find a gap before coming in third behind Van Aert and Jasper Philipsen.
Tadej Pogacar, 22, crossed the line safely to confirm his second consecutive overall title for UAE Team Emirates.
The fairytale ending to this Tour was not to be, but this will still go down as a remarkable performance from Cavendish.
After several seasons disrupted by injury and illness, the 36-year-old did not expect to be competing in the Tour but stepped in after an injury to team-mate Sam Bennett and looked back to his best as he took his first stage wins since 2016.
As history beckoned, Van Aert had joked that he would do his best to defend Merckx's record for Belgium, and though he could not stop Cavendish equalling it, the Jumbo-Visma rider was there to make sure it was not broken on the Champs-Elysees.
The stage win added to the remarkable salvage job Jumbo-Visma have done in this Tour after losing leader Primoz Roglic in the opening week - having now won four stages and taken second overall through Jonas Vingegaard, all despite only finishing with four riders.
"This Tour has been amazing," said Van Aert, the first man since Bernard Hinault in 1979 to win a mountain stage, sprint and time trial at the same Tour.
"It's been such a roller-coaster and to finish off with a win like this is beyond my expectations.
"I guess I gave myself a problem because I have to catch a flight tonight (to the Olympics) and all these interviews will take a while, I'll have to see if I can get there but I'm definitely not sorry that I went for it today.
"To win three stages like this is priceless, so thanks to my small team."
This year the famous finish line on the Champs-Elysees had been moved 350 metres further up the boulevard, closer to the Arc de Triomphe.
The longer run-in from the final bend should have suited the strong lead-out of Cavendish's Deceuninck-QuickStep squad but they got themselves out of position in the final two kilometres, leaving Cavendish to improvise.
There was a brief moment when space opened up to Van Aert's right but Philipsen swept in to leave Cavendish banging his handlebars as he rolled in third.
However, the Manxman had done enough to secure the points classification - a decade after he previously took the green jersey in 2011.