The lanky midfielder took aim with his right foot from 25 yards and left Shrews goalkeeper Chris Weale, playing against his former club, clutching at thin air as he celebrated his sixth goal of the campaign in all competitions.
The home side paid for a wretched first half display and were caught hopelessly on the break after 28 minutes when Luke Summerfield fed Curtis Main down the right and his low cross created a tap-in for Jon Taylor.
City failed to create a worthwhile chance in the opening 45 minutes and were booed off at the interval. They improved after the break and substitute Marlon Harewood hit the angle of post and crossbar with a 62nd-minute header.
Sam Baldock had forced a flying save from Weale soon after the interval, but Shrewsbury defended strongly and continued to threaten on the break.
The result left Sean O'Driscoll's City still without a League One win this season following relegation in May.