Van Wolfswinkel came close to opening the scoring 20 minutes in when he attempted to turn the ball in from a Kevin Monnet-Paquet cross, but the shot was saved.
Toulouse capitalised on the missed opportunity a couple of minutes later when a through-ball from Aleksandar Pesic found Ben Yedder, who rifled the ball into the back of the net.
Benjamin Corgnet tried to smash the ball in to get the home side back on level terms shortly after, but his powerful finish came back off the bar.
Corgnet had another couple of chances for Saint-Etienne before the break, but he missed the target twice, leaving them a goal down at half time.
After a quiet start to the second half, Ben Yedder was involved again as he crossed the ball in for Oscar Trejo, but his volley from the centre of the box was high.
Saint-Etienne created the majority of the chances in the final 15 minutes as they sought a late equaliser, but Fabien Lemoine, Renaud Cohade and Allan Saint-Maximin all failed to test Zacharie Boucher with their finishes.
Despite having more than twice as many chances as their opponents, Saint-Etienne were unable to get back on level terms, leaving them eighth in the table, while Toulouse move up to sixth as a result of their win.