The 53rd-ranked Granollers won his first title since beating Monaco two years ago in Valencia, Spain.
"It's a very special feeling to win here," said Granollers, who had failed to go beyond the quarterfinals of an event this season.
He ended Robin Haase's two-year winning run in Kitzbuehel in the semifinals.
Monaco was seeking his ninth career title and second of the year, after winning in May in Duesseldorf, Germany.
The 31st-ranked Monaco, who won here in 2007, dictated the pace in the opening set with strong forehands from the baseline, sending Granollers from one corner to the other.
Monaco broke Granollers' first service game with a winner off the net cord and added two more breaks to take the opening set in 23 minutes.
"I didn't play well at all in the beginning. He was very solid from the start," said Granollers, who won only nine points in the set. "When you're close to winning a title, you get nervous."
Granollers saved two more break points early in the second set, helping him settle down. He broke at the first opportunity to lead 5-3.
"He had chances in the second set as well, and I was lucky he couldn't take them," Granollers said. "From then on it became a different match."
Granollers had a 4-0 lead in the deciding set. He missed three match points at 5-2, but converted at the fourth chance on Monaco's serve when the Argentine sent a backhand volley long.
"Marcel deserved to win," Monaco said. "In the end, he just played better than me."
He's the first Spanish winner since Alex Corretja in 2002 and improved to 4-2 in career finals.