The Colombian won by just two seconds, salvaging his yellow jersey in the final stage after Contador (Trek Segafredo) pulled away 50km from the finish.
“It was a crazy day,” Henao said. “This is the biggest win of my career, I hope it means more will follow.
“I’ve had some tough times in my life, but today the sun came out for me.”
“It was an incredible week for us, with the results of Julian and Dan, we started this weekend with a lot of ambition and we showed that we were a team that gave everything for victory.”
Australia's two-time former winner Richie Porte (BMC) finished the week in 10th-place overall after winning the Tour’s Queen stage.
Contador picked up two seconds in time bonuses at the intermediate sprint and another six by taking second place in the eighth stage behind David De La Cruz (Quick-Step Floors), whose stage win denied the two-time winner the extra points needed to take the overall title for the third time.
Henao, who started the day with a 31-second advantage over Contador, crossed the line 21 seconds after his rival. Dan Martin (Quick-Step Floors) completed the final podium.
Last year, Team Sky's Geraint Thomas beat Contador by four seconds to win Paris-Nice.
"Yeah, I gave everything," Contador said. ‘And my team gave everything today, they were incredible. On the one hand, I am very happy because everyone knew I would attack when (Jarlinson) Pantano was pulling hard, and I had to be strong.
“It's difficult to go alone because every rider is looking to me to do the work. But on the other hand, it is hard to lose by two seconds again and another second position."
“It was a beautiful race and I'm glad to have played a part in that. I didn't win but I'm glad. That's the way I am. I have to try something. I can't be content with sitting back. I have to take risks on the flat, on the climbs and in the descents.”