Soler (Movistar) started the final stage held in and around Nice with a 37sec deficit on Yates (Mitchelton-Scott) and ended it with his biggest career victory by just four seconds.
David De La Cruz (Sky) won the 110km stage ahead of Omar Fraile (Fraile), with Soler third at three seconds but with enough time and bonus seconds in hand for the overall victory.
"It went full gas at the first intermediate sprint for the time bonus," the 24-year-old Soler said. "Then when I saw that there was no breakaway attempt, I decided to save my strength before going for it.
"It was a decision we planned in the morning with my team directors and my team-mates. It's really a dream come true to win Paris-Nice and add my name to the winner's list next to some of the greats of cycling.
"I'm progressing each year and I'm getting used to riding at that level. I'm progressing step by step."
Soler, De La Cruz and Fraile engineered an escape with more than 40km left on the first category Cote de Peille while Yates was left isolated as the trio rode out to a 1 minute and 30 seconds lead they nurtured to the finish.
Soler collected bonus seconds in the second intermediate sprint at La Turbie before Fraile unsuccessfully tried to go solo in the descent of Col d'Eze.
Yates ended the stage in sixth place to finish second overall to Soler and ahead of Gorka Izagirre (Bahrain-Merida).
"It was just one of those days," Yates said. It was a really hard day from the start. The team did a really good job. We really did as good as we could.
"It was a really aggressive race as we expected. I was just empty in the finale there. Marc Soler did a very good ride, I congratulate him. He's a very good rider and we've known him for a long time already. I had a stage win yesterday.
"I'm getting closer. Last year I lost Romandie on the last day as well by 20 seconds and now I lost Paris-Nice by four seconds. I'm getting closer. Hopefully, I can improve and work hard and I take the top spot. Today a great rider won."