Morrison headed in unmarked from a second-minute corner to put the visiting side in front at Selhurst Park and Palace, despite enjoying plenty of possession, could not find a way past Boaz Myhill in the Albion goal.
Gardner then fired past Julian Speroni from 25 yards in the second half to seal the win and move West Brom eight points above the relegation places in 13th, while Palace – who were suffering their eighth home defeat – stay 11th.
Yannick Bolasie saw an audacious overhead volley saved, while substitute Dwight Gayle hit the crossbar and Yaya Sanogo saw his attempt ruled out for offside as Palace were frustrated at every turn.
The visitors got the best possible start as Morrison evaded Jason Puncheon and was free to head home Chris Brunt’s corner from six yards in the second minute.
Palace were not playing in their usual free-flowing manner and their first chance was a tame effort from James McArthur which was easily held by Myhill.
Things could have got worse for the hosts on 15 minutes as Mile Jedinak looked to have wrestled Victor Anichebe to the ground in the box – but referee Jon Moss was unmoved by Albion’s appeals.
Myhill was again on hand to deny an acrobatic overhead kick from Bolasie shortly afterwards as the Eagles began to dominate possession.
The home side still went in behind at the interval, with boss Alan Pardew making a double change at half-time as he introduced Gayle and Pape Souare in place of Jedinak and Joe Ledley.
But it was the Baggies who struck again as Brunt’s corner drifted out to Gardner – who collected the ball before firing past Speroni to double his side’s advantage.
Gayle should have reduced the arrears almost immediately but could only head against the crossbar from inside the six-yard box after Bolasie’s driven cross.
Saido Berahino had been quiet for West Brom but almost added a third as he wriggled free from Damien Delaney and Scott Dann before seeing his effort turned behind by Speroni.
Delaney then came close to giving Palace a lifeline, but Myhill claimed his downward header, with substitute Sanogo then seeing a tap-in ruled out for offside as Pardew tasted league defeat for just the fourth time as Palace boss.
Soccer Saturday verdict – Matt Le Tissier
“When West Brom take the lead in a game it suits them down to the ground. They just sit in and defend brilliantly.
“Palace spent a lot of time in West Brom’s half without really creating any clear chances. It wasn’t one of Bolasie’s better days and West Brom took advantage and soaked it up. The summer could be interesting at West Brom. It depends where their interests lie.”
Crystal Palace: Speroni (6), Ward (6), Delaney (7), Dann (6), Ledley (6) Bolasie (7), Jedinak (5), McArthur (6), Zaha (6), Puncheon (5), Murray (6).
Subs: Souare (7), Gayle (6), Sanogo (6).
West Brom: Myhill (7), Dawson (7), McAuley (8), Lescott (7), Brunt (6), Gardner (7), Fletcher (6), Yacob (8), Morrison (6), Berahino (6), Anichebe (7).
Subs: Wisdom (6), Olsson (5), Baird (5).
Man-of-the-match: Gareth McAuley