For the first time in 30 years, after a run of 13 defeats and five draws, the Baggies chalked up a victory on Stoke soil to move seven points clear of the relegation zone.
Morrison set Albion on their way with a 30-yard strike in the 35th minute, aided by the gift of a gaffe from Stoke goalkeeper Thomas Sorensen.
When City's second-half substitutes in Jermaine Pennant and Cameron Jerome combined for the latter to equalise four minutes from time, it appeared as if Albion's hoodoo would continue.
But in a game in which Morrison twice hit the woodwork either side of his third goal of the season - believing that "on another day I could have had a hat-trick" - Albion gained their just reward in the first minute of injury time.
Fellow Scotland international Graeme Dorrans swept home a curling 25-yard free-kick for his first goal for almost a year.
In gale-force conditions, the win finally laid to rest West Brom's Stoke curse, also ending a run of three successive league defeats.
"I've played in a few games here in my time with Albion and we've come away with very little," said midfielder Morrison.
"But this win was sweet because we really worked hard and deserved it. It was a great victory.
"We knew what Stoke would be all about. When you play them it's all about character, competing and who wants it more.
"But the lads showed real determination and that's what got us the win.
"The conditions weren't the best, but I think that affected Stoke more and our football ability helped us.
"After hitting a bit of sticky patch lately, this result can spur us on to push away from the relegation zone.
"And if we get a few players back from injury and get back to full strength, we can compete with anyone."
It was Albion's fifth win on the road in the league this season, in stark contrast to their miserable home form where they have only gleaned eight points from a possible 33 and scored just eight goals.
That is bitterly frustrating for Baggies manager Roy Hodgson, who said: "We've got to be thankful the missed opportunities at home have been more than compensated for by some excellent away performances and results.
"If you'd said at the start of the season that after 22 games we would have 25 points I would not have been disappointed.
"But then if we'd done a little better at home we would be well over 30 points and turning cartwheels.
"It means we've still a long way to go. Our target is 40 points, like a large percentage of the teams in this league, so our target remains the same.
"This win has helped us move towards that, but we're going to have to continue with this level of performance if we're going to get more results and points."
After losing just one of their previous 10 league games, and that to leaders Manchester City, the result was naturally a bitter pill to swallow for boss Tony Pulis.
That was exacerbated by the fact Jonathan Walters saw a penalty in the 71st minute saved by Albion goalkeeper Ben Foster, even if the original decision from referee Anthony Taylor was dubious.
Despite that, Pulis said: "Jonathan has been fantastic for us this year, but that's the way it goes sometimes.
"For me the second goal was really disappointing, never mind the first. I thought it was a very soft goal to concede. I was not expecting that to go in the back of the net.
"But overall we didn't play as well as we can, either individually or collectively, and also one or two things went West Brom's way.
"But we're still eighth in the Premier League, and in the last 32 of both the FA Cup and Europa League, so it's not too bad is it?
"After this result now we just have to dust ourselves down."