Blackburn's captain marked his 50th league start with a goal early in the first half and although Jon Nolan's penalty levelled matters before the break, Danny Graham's 10th of the season and a Mulgrew penalty ensured Rovers moved to within two points of second-place Shrewsbury.
Bradley Dack's powerful strike was superbly tipped behind before Mulgrew's curling 25-yard free-kick went in off the post to open the scoring after 14 minutes.
The Shrews were awarded a penalty in the 35th minute when Carlton Morris was brought down by David Raya, and Nolan calmly slotted home his sixth goal this season.
Town started the second half well but Rovers regained the lead on the hour after a stunning turn and volley by Dack cannoned off the post and Graham reacted quickest to tap in.
Mulgrew made sure of the points in the 70th minute with a calm spot kick after Dominic Samuel was clattered, ending Shrewsbury's 10-match unbeaten run.