Mikael Mandron struck twice early on as Steve Cotterill’s men started woefully but top scorer Shaun Whalley and Daniel Udoh, possibly making his final appearance for the club, replied with fine finishes before the break.
The second period was a far more serene affair and a point was fair but veteran striker Chris Porter came off the bench to tap home the winner with nine minutes left.
The defeat meant Town finished the League One season, rather fittingly, in 17th. Crewe ended in 12th.
Cotterill was able to recall fit-again midfielder Sean Goss back into the line-up for his first start in almost exactly a month, where Town reached 50 points in a goalless draw at Gillingham.
He came in for Brad Walker and operated in the advanced midfield role, with Josh Vela filling back in alongside Ollie Norburn.
David Davis remained at right wing-back and Ethan Ebanks-Landell returned to the back three after a rare night off against Ipswich.
Whalley got the nod alongside Udoh in attack, with Harry Chapman on the bench and Curtis Main left out altogether. Academy striker Tom Bloxham was on the bench.
For Whalley and Udoh, one of four out-of-contract players named in the first XI, it was a final chance to catch the eye of watching boss Cotterill.
Davis, signed on a short-term deal in January, also sees his contract expire, as does Goss. On-loan defender Matthew Pennington is leaving Everton this summer, with a question mark over his future location.
Scott Golbourne, who announced his retirement on Saturday night, remained uninvolved.
The hosts had enjoyed a fine debut season back in League One under ex-Town man David Artell.
For what is hopefully the final time, Cotterill took his place in the away directors’ section ahead of kick-off after conducting the Town team talk.
A party of rowdy Crewe fans had gathered in the open corner between the main stand and the goal their side defended in the first half. And the vocal supporters made their presence known early on, with a welcome return to something resembling an atmosphere.
The first 10 minutes absolutely resembled a tepid end-of-season affair. Crewe enjoyed more of the ball in the better areas.
And it was not much of a surprise when Mandron lashed a fine finish on the half-volley across Harry Burgoyne and in the opener.
The lively Owen Dale had just had a shot blocked. Cotterill yelled at his players to “relax!” but advice was not heeded, as Town’s midfield lost the ball cheaply and Charlie Kirk threaded a wonderful pass into Mandron, whose finish was deadly from the right of the penalty box.
Cotterill continued barking his orders, his voice and that of the lively Crewe fans the only backdrop.
But all Town had threatened with was a wayward Goss strike from 25 yards.
Crewe were far the brighter and almost doubled their lead through a Burgoyne error inside 20 minutes. Bright Dale feet saw the winger check inside and his fierce low drive almost wriggled through the keeper’s hands but for Pennington’s clearance.
But moments later Pennington’s clearance wasn’t as effective. His ball cannoned off a Crewe body and into the grateful lap of Mandron, unmarked eight yards out, and the striker rifled home a volley.
It had been a disastrous first 25 minutes from Shrews who looked way off the pace.
The visitors upped the ante. Vela led the charge, as he won the ball for Udoh in the box but his shot was easily blocked.
Salop began to move the ball much quicker, and worked into better positions. They were still lacking a clear chance.
And it was a bit of magic that got them back into the contest 10 minutes before the break.
Goss’ ball down the left to Whalley was a fine one and, from there, the No.7 did the rest.
He typically chopped inside his defenders and forced his way into the box before lifting a fine curled finish high beyond Will Jaaskelainen and into the net.
It was a trademark Whalley effort on the scene of his first Shrewsbury goal some five-and-a-half years ago.
The momentum had totally swung and, almost out of nowhere, Shrews tails were up. An interruption due to injury, which saw ex-Town man Omar Beckles introduced, did not halt Shrewsbury momentum.
And Salop carved out a beautifully-worked equaliser on 42 minutes. Skipper Norburn worked a lovely one-two with Whalley midway through the Crewe half before stabbing a fine through ball with the outside of his foot through to Udoh.
The strike showed strength to roll his defender expertly before slamming in a first-time finish with his first touch for a first goal since February.
The Railwaymen were eventually grateful for the half-time whistle as Davis missed a great chance to put his side ahead in stoppage time, but shanked a strike with his weaker left foot.
Town were bright after the break but things calmed significantly.
Goss shot off target after a neat move before Crewe’s Callum Ainley skied an effort after fine work from Tom Lowery.
The second half did not follow the first 45 in terms of chances created. Cotterill remained a demanding presence from the main stand with bellows of “up” and “forward”.
But Salop came on strong in the game’s final quarter. Defender Pennington almost added to his recent goal haul but his glancing header from Goss’ near post corner missed the far post by a matter of inches.
It didn’t appear a winner was in the offing, but sub Porter tapped home with his first touch after Kirk’s angled strike appeared to go through Burgoyne’s on to his near post, leaving an empty net as Salop checked out for hopefully the final game in front of empty stands in their familiar 17th place.
Crewe Alexandra (4-3-3):
Jaaskelainen; Daniels (Beckles, 39), Lancashire (Lundstram, 66), Adebisi, Pickering ©; Lowery, Ainley (Murphy, 66), Wintle; Dale, Mandron (Porter, 79), Kirk.
Subs not used: Richards, Finney, Evans.
Shrewsbury Town (3-5-2):
Burgoyne; Pennington, Ebanks-Landell, Pierre; Davis, Norburn ©, Vela, Goss, Ogbeta (Bloxham, 85); Whalley (Edwards, 78), Udoh.
Subs not used: Bevan, Williams, Walker, Love, Chapman.
Referee: Anthony Backhouse