Torino looked a threat from the off, while Fiorentina, seeking their seventh consecutive victory, struggled to find any creative outlet from a sluggish forward line.
The hosts took the lead five minutes from the break after Alessio Cerci got himself on the end of a low Danilo D'Ambrosio cross, with Riccardo Meggiorini's dummy fooling the Fiorentina defence.
Fiorentina came alive in the second half, but with talisman Stevan Jovetic still out injured and Luca Toni in the treatment room following a nasty collision with defender Kamil Glik, Torino were able to weather the storm.
The visitors drew level from the penalty spot in the 75th minute after D'Ambrosio upended Juan Guillermo Cuadrado, with Gonzalo Rodriguez converting.
However, just a minute later Torino were back in front, Valter Birsa's cross shot tricking everyone and ending up in the net.
Former Ajax striker El Hamdaoui equalised with pretty much his first touch of the game, turning and shooting in one movement, hitting an angled shot past Jean-Francois Gillet.
"It was a good game, very open. Both teams gave it a go and deserved to win. On balance it was the right result," Fiorentina coach Vincenzo Montella told RAI television.
"I was a little happier in the second half than the first. We reacted with a maturity, with personality and quality."
Asked about the injured Toni, Montella replied: "He's still under observation, but I don't think there will be any problems."
Fiorentina are a point ahead of Napoli whose game in hand is at Cagliari on Monday.
Internazionale, level on points with Fiorentina on 28, also play their game in hand on Monday at Parma.
Juventus will go seven points clear at the top if they beat Milan in Sunday evening's big game at the San Siro.
Elsewhere, Mattia Destro scored only his second goal for Roma since arriving from Genoa during the close season, helping the Giallorossi to a 1-0 victory at Pescara, a win that takes the capital club up to joint-fifth in the table.
The big shock of the day was Genoa's 1-0 win at Atalanta thanks to Andrea Bertolacci's first-half goal for the lowly visitors. Fellow strugglers Siena drew 0-0 at Chievo.
Sampdoria continued their revival following victory in the Genoa derby last weekend with a useful 1-0 win at home to Bologna, Andrea Poli netting the winner.