The Colombian took his tally for the season to 19 with the winner two minutes from time as Rangers closed to within a point behind Scottish Premiership leaders Celtic, who have a game in hand.
Gerrard's men had won just one of their previous four games to fall four points behind their Glasgow rivals with the two sides set to meet at Ibrox on December 29.
Another tough afternoon looked on the cards for the visitors at McDiarmid Park when Matty Kennedy's rising drive gave St Johnstone the lead on the stroke of half-time.
"The first 45 minutes I wasn't happy, far from it. It was a poor performance, we were awful," Gerrard told BT Sport.
"We didn't have one player out there that was doing the shirt any justice, so I certainly wasn't happy."
Gerrard introduced Glenn Middleton for Eros Grezda at half-time and the change helped turn the game as Rangers improved dramatically in the second period.
"I made my feelings clear at half-time, made some changes to the 11 and to be fair to the players they played with more bravery, belief and character and gone out there and performed like Rangers players in the second-half," added Gerrard.
"But we shouldn't have to work that hard to win at places like this with all due respect."
Middleton's measured cross picked out Morelos to head home the equaliser 25 minutes from time.
Only Zander Clark in the St Johnstone goal then kept the hosts level as he denied Daniel Candeias and Kyle Lafferty twice with stunning saves.
However, Clark was helpless when Morelos met James Tavernier's cross to score to spark wild scenes of celebration from the players and fans, but not their manager who remained stoney faced on the sidelines.
"I'm still thinking about the first-half," said Gerrard when asked why he didn't celebrate.
"I'm thinking big picture where we can take this squad and players. To be fair we are quite bare today in terms of numbers, but that first-half concerned me because what we asked of them before the game just clearly wasn't there."