The 24-year-old survived dropping the second set to win 7-5, 3-6, 6-2 in just under two hours. It was his sixth ATP title and his first of 2010.
"It's a great feeling to win here," said Almagro. "It's always amazing to win a final and I'm very happy with the week. I'm going to enjoy this moment and then prepare for next week in Hamburg."