The Blades took the lead on 34 minutes when Jerome Thomas fouled David Carney in the box and James Beattie scored the penalty for his 12th of the season.
The home side offered more after the break but found Paddy Kenny in fine form, before Gary Cahill poked home on 75 minutes to make it 2-0.
Chris Armstrong's classy finish in the dying minutes sealed United's fine win.