Afridi, whose last appearance for his country was back in March, top-scored with a typically aggressive 76 off 55 balls to help Pakistan recover from a perilous 47 for five to set their hosts a target of 225 to win.
The 33-year-old then claimed seven wickets for just 12 runs off his nine overs of leg spin as the Windies were skittled for just 98 in reply - their lowest total against Pakistan.
Afridi's figures were the second best ODI return of all time, with only Sri Lanka paceman Chaminda Vaas' eight for 19 in 2001 topping it.
Few could have predicted Pakistan would run out such convincing winners when Windies paceman Jason Holder was tearing through the tourists' batting line-up at the start of the match.
The 21-year-old (four for 13) took all of the wickets as Pakistan were reduced to 23 for four before a brief shower sent the players off.
Following the resumption, Umar Akmal then fell to Kemar Roach (two for 38) as Pakistan saw half their side back in the changing rooms before 50 runs had been scored.
However, Akmal's departure brought Afridi to the wicket and his arrival saw the whole dynamic of the match change.
The powerful all-rounder hit five sixes and six fours in scoring his 35th ODI fifty and found a useful ally in his captain Misbah-ul-Haq as the pair shared in a sixth-wicket stand of 120.
Misbah eventually fell in the 48th over after dropping anchor in an innings of 52 off 121 deliveries that included just a solitary four, but his contribution in support of Afridi helped Pakistan out of a hole and to a much more competitive score of 224 for nine.
It soon became clear that score was not only competitive, it was going to be well beyond West Indies' reach.
With just five overs gone the hosts found themselves seven for three, with Mohammad Irfan (two for 17) dismissing Johnson Charles (nought) and Darren Bravo (five) and star man Chris Gayle being run out for one.
Then it was the Afridi show.
He sent back Lendl Simmons (10) and Windies captain Dwayne Bravo in successive deliveries and then snared the big-hitting Kieron Pollard for three.
That left the home side on 50 for six but worse was to follow as Afridi snared top-scorer Marlon Samuels (25) and Roach (one) in his next two overs.
Afridi was then taken out of the attack for a spell, but he returned in the 41st over and promptly wrapped things up by dismissing Sunil Narine (14) and Holder (nought) in the space of four balls to complete one of the great all-round performances while securing the win and, unsurprisingly, the man of the match award.
- Sports & Recreation