The hosts felt that they had opened the scoring inside the opening three minutes, but Alessio Cerci saw his strike ruled out for offside.
© Getty Images
He came close again before half time when his free kick deflected just wide of the post.
Ciro Immobile should have broken the deadlock just moments after the break, but he headed over the bar from close range.
On the hour mark Torino took the lead, as Andrea Consigli fouled Cerci in the area and the striker himself stepped up to slot the resulting penalty into the net.
The visitors came close to equalising through Denis, but Daniele Padelli kept out his headed effort.
Torino should have extended their lead in the final minute after Davide Brivio gave away a penalty and picked up his second yellow card of the match in the process.
This time they couldn't score from the spot as Immobile save his attempt saved, but the home side held on to move up to sixth place in the Serie A table.