Shankland struck his 28th goal of the season for Robbie Neilson’s runaway leaders who ended their three-game winless streak to move 21 points clear of John Robertson’s second-top Inverness.
United did not have to wait too long for the breakthrough. Rakish Bingham crossed to the edge of the penalty area where Louis Appere shot low past Inverness keeper Mark Ridgers.
The Highlanders, however, levelled in 32 minutes. James Keatings’ in-swinging corner was met by Jordan White who headed past Benjamin Siegrist in the United goal.
The leaders looked like they were heading for a draw after the break, but Shankland had other ideas and struck to put them back in front in 59 minutes.
Bingham was again involved with his precise delivery into the box where United’s talisman was waiting to pounce.
Shankland got the ball under control, steadied himself, and lashed a low, left-foot drive from 16 yards beyond the reach of Ridgers to seal victory.