Kris Commons later netted two goals in as many minutes to hand St Mirren their first home defeat in nine games and stretch Celtic’s unbeaten league run to 23 matches.
Adam Matthews created the first when he cut between Danny Grainger and Marc McAusland and flicked the ball inside Sean Kelly for Mulgrew (53), who held off a challenge from Paul McGowan to roll his shot in off the post from eight yards.
Stokes then scored his 100th career goal as he raced on to a threaded pass from Joe Ledley and stepped inside Darren McGregor to bend the ball high into the far corner past Marian Kello from 15 yards.
Kello made a brilliant save at full-stretch to keep out a Scott Brown half-volley from 20 yards, and the Buddies keeper then tipped a powerful Stokes shot over the bar within three minutes.
But a moments later Kello was taken out by a superb curling Emilio Izaguirre cross and Commons arrived at the back post to send a stooping header over the line.
St Mirren were opened up again as James Forrest laid a pass off to Mulgrew on the halfway line and raced forward for the return before cutting the ball back from the goal-line for Commons (72) to rifle his shot into the roof of the net.
Celtic dominated the early stages of the match and Kello was almost caught out by a Mulgrew cross but the keeper managed to palm the ball from under the bar and was fortunate it dropped just behind the onrushing Stokes.
Kello was even more fortunate 11 minutes later when Commons drew two defenders towards him and played a reverse pass into the box to Mulgrew and his low drive came back off the post into the keeper’s arms as he lay on the six-yard line.
Mulgrew then found Commons with a measured pass and the Celtic winger turned to clip the ball over Kello from 22 yards, only to be denied by the inside of the same post.