Unseeded Caroline Wozniacki won the women's title, her second tournament victory this month, beating top-seeded Anna Chakvetadze 3-6, 6-4, 6-1.
Despite having the crowd against him, the 19-year-old Cilic broke the hard-serving Fish five times, three times in the final set, to secure the win in his first finals appearance.
His best decision of the night may have come at the coin toss, when the 6-foot-6 Cilic elected to receive. He broke Fish in the first game and made that hold up in the first set.
After dropping the second set, he broke Fish again to open the third, pumping his fist in the air.
With the crowd using its favorite cheer, "Anybody got an ace? Go Fish!,'' the 26-year-old American was consistently hitting first serves at between 125 and 130 mph.
But Cilic continued to return well, holding Fish to just five aces. After dropping his own serve in the second game, he broke Fish in the third and seventh games.
Fish, who lost to James Blake in the men's final a year ago, was trying for his third career win, and first since 2006.
In the women's draw, Wozniacki earned her second career victory. The 18-year-old Dane hadn't even been in a WTA final before August. She won her first WTA Tour win in Stockholm, then reached the third round at the Olympics, where she lost to eventual gold-medalist Elena Dementieva.
"Stockholm was in Scandinavia, it was my first tournament and it was smaller than this,'' she said. "Here, it's the tournament before the U.S. Open, and it's a really big tournament. You know, I have beaten some really great players on my way to win this tournament.''
Her run included wins over eighth-seeded Dominika Cibulkova, third-seeded Marion Bartoli, and seventh-seeded Alize Cornet.
It didn't look good for Wozniacki early in the final. She was broken three times in the first set, and was in trouble in the second after Chakvetadze broke her again in the first game. But Wozniacki broke back and won the set when Chakvetadze double-faulted on the final point.
Wozniacki dominated the third set, breaking Chakvetadze in the fourth and sixth games before serving out the match.
"I just didn't have power, especially in the third set,'' Chakvetadze said. "If you are not able to run and fight on the court, then you're going to lose the match.''
The loss was the 21-year-old Russian's first in a WTA final. She had been 7-0 during her short career, including a win earlier this season indoors at Paris. Despite her loss, Chakvetadze expected to move up in the rankings, to No. 9 from No. 11 next week.
"I'm actually pleased with my game,'' she said. "Not today. But if I compare it to one month ago, it's much better. So I look forward to play the U.S. Open, the most important tournament obviously is coming in two days. I hope I will stay fresh for each match.''
Wozniacki has moved up from No. 64 in January to No. 22, and is expected to break into the top 20 for the first time.
The teenager still has a year of high school left, and said until recently, she considered her biggest tennis achievement beating her older brother.
"I am having fun,'' Wozniacki said. "I enjoy playing. I enjoy playing for a big crowd. You know, when you're in the finals, you don't have anything to lose. You can just win.''
Spain Have Been The Most Consistent - Hitzlsperger
Wozniacki wins in Stockholm in straight sets