
Pedro Santos came off the bench to net the decisive goal 16 minutes from time but not before their visitors passed up a glorious opportunity to take the lead.
A handball from Baiano three minutes into the second half saw Moreirense awarded a penalty but Matheus saved Andre Simoes’ poorly struck spot-kick.
The result boosts the European ambitions of Sergio Conceicao’s team, who are guaranteed to finish the 19th matchweek in the top five.