Stephen Mallan konverterade ett straff för att ge Buddies ledningen efter Darren Cole hade fouled Calum Gallagher.
Liam Buchanan jämnades snabbt med Livi men Shanklands strejk utanför boxen hade besökarna framåt igen halvtid.
Jordan White petade hem för värdarna bara för Shankland att avfyra en imponerande volley och avgöra matchen.
Lawrence Shankland gjorde dubbelt så mycket som St Mirren slog andrabottom Livingston i skotska mästerskapet.