Sullay Kaikai öppnade poäng för Shrewsbury med en låg strejk innan Cody McDonald planed från 20 meter.
Shrewsbury återfick ledningen genom Andy Mangans akrobatik innan Gills utjämnade igen genom Jake Hessenthalers strejk på avstånd.
Besökarnas vinnare kom när Jean-Louis Akpa Apros slumpartade 81:a minut avböjda ansträngning hittade nätet.
Gillingham sjätte match utan en vinst fick dem att glida ur League Ones topp sex, språngfroged av Barnsley.
I andra änden av bordet, Shrewsbury avslutade sin körning av sju matcher utan en vinst för att gå fyra poäng bort från nedflyttningszonen med ett spel i handen.
Shrewsbury gav deras överlevnadshopp ett stort uppsving med segern på Gillingham, som hoppar av från spelplatserna.