The 32-year-old posted a lengthy message on Instagram thanking fans for their support, while insisting the time was right to walk away from the game.
He wrote: “As a 5 year old kid I stood in my front garden and said to my dad “I want to be a football player daddy”. That never changed. I lived my dream until last night. It’s with a sad heart but I feel the time is right that I call a day on my professional career.”
“It’s now on to the next chapter of my life. Let’s hope it’s as fun as the first one was.”
Stevenson started out with St Johnstone before moving on to boyhood heroes Ayr United in 2007. It was there that his performances caught the eye of Jim Jefferies, who made Stevenson his first signing since returning to Hearts for a second spell as manager. The player would leave in 2012 for Ipswich but quickly returned to the club later in the year after John McGlynn had taken over from Portuguese boss Paulo Sergio.
He had a habit of popping up with a goal on the big occasion, netting in memorable victories over Hibs and Celtic, and scoring twice as Hearts lost the 2013 League Cup final to St Mirren.
One of his final games for the club saw him net a stunning first-half hat-trick as Hearts battered Kilmarnock 5-0 at Tynecastle despite having already suffered relegation.
In his emotional message, Stevenson took time to thank the Hearts fans in particular for their support, and the immense pride he felt pulling on a maroon jersey.
He continued: “I want to thank Jim Jeffries and Billy Brown for believing in me enough to take me to a huge club in Hearts, which was no doubt the best time in my career. It’s a truly wonderful club with amazing fans. I lived the dream playing on big stages in big games and will forever be proud to have worn that maroon strip.”
A move to Partick Thistle followed his release from Hearts before he returned to Ayr United for a second time. After a short spell with Dumbarton he signed for Raith Rovers this season.
Incredibly, his last game as footballer, a 1-0 defeat to Ayr on 28 February, saw him play the full 90 minutes as a goalkeeper due to an injury crisis at Stark’s Park.