Candreva came close to giving the hosts an early lead, but after bursting into the box he saw his shot blocked by Daniele Padelli.
© Getty Images
Torino were looking dangerous on the counter-attack and Ciro Immobile fired a strike into the side-netting following a driving run.
Lazio had a good opportunity moments later when Stefano Mauri was picked out unmarked in the box and headed over the bar from close range.
The home side continued to threaten and Keita Balde was unlucky to see his powerful effort from the edge of the box flash just wide of the post.
Lazo came close with a chance of their own moments later, but Stefan Radu's long-range effort was tipped over the bar by Padelli.
With three minutes of the first half remaining, the home side make the breakthrough, as Mauri nodded home from close range following Diego Novaretti's header back across the box.
Kamil Glik wasted a glorious chance to get his side back into the game after the break when he volleyed over the bar from close range.
© Getty Images
Nine minutes later Lazio were given a penalty after Padelli rushed off his line and brought down Keita inside the box.
Candreva stepped up to take the spot kick and kept his composure to chip the ball down the middle.
Lazio were reduced to 10 men soon after as Novaretti saw a second yellow card for a foul on Immobile just outside the box.
The visitors looked to make their numerical advantage count and Bovo saw his free kick beaten away, before Immobile's strike was saved by the keeper.
With a minute of the match left to play Immobile gave Torino the lead for the first time in the match, when he picked up Paulo Barreto's pass on the edge of the box, before driving forward and powering a strike into the top corner.
Torino could not hold on though, as Lazio drew level in the fifth minute of stoppage time. Felipe Anderson's shot looked to be heading wide, but it was intercepted by Candreva, who took a touch before slotting a low effort past Padelli to earn his side a point.