Zverev, the 19-year-old Monte Carlo resident, came into the final full of confidence and broke the Swiss top seed's serve twice for a one-set lead in 39 minutes.
In the second set, world number three Wawrinka, who has won 11 of his previous ATP finals, also broke twice to level at one-set all after one hour 22 minutes on court.
Wawrinka, 31, broke early in the deciding set but the 27-ranked Zverev broke back twice to close out his win in two hours 23 minutes.
"I'm full of emotions! I just couldn't have chosen a better place to win my maiden title," said Zverev, who has Russian origins, at the hardcourt of Sibur Arena.
"It was really hard when I was trailing 3-0 in the deciding set but I forced myself to keep on fighting. And now I'm really happy with my win."
Wawrinka congratulated Zverev calling him the future of tennis.
"You're the future of the tennis but you're already at the top," the Swiss said.
"Today you've played a great match and won deservedly. My congratulations for what you're doing so far."