Osasuna had conceded 11 goals to Rayo Vallecano and Real Madrid in their previous two games, but had luck on their side throughout as Kalu Uche somehow blazed over from only five yards out early on.
Garcia then put the hosts in front eight minutes after the break as he volleyed in Lolo's cross and Espanyol were reduced to 10 men two minutes later when Philippe Coutinho was shown a second yellow card for kicking the ball away.
The on-loan Atletico Madrid midfielder then added a brilliant second as he cleverly lobbed Kiko Casilla and the visitors' misery was complete with eight minutes remaining as Juan Forlin also picked up a second booking for a foul on Garcia.
Espanyol have now gone five games without a win but they should have got off to the perfect start after four minutes as Javi Lopez and Sergio Garcia exchanged passes down the right and the former's cross found Uche who seemed to get in Coutinho's way as he put the ball over from point-blank range.
Having survived that early scare though Osasuna began to take control and typically had two good chances from set-pieces midway through the half.
Paxti Punal's free-kick was diverted onto the post by Garcia before another Punal cross presented Osasuna's top-scorer with an even better opportunity but he wastefully headed over.
Garcia made amends though just after half-time as he sweetly volleyed Lolo's cross into the corner of the net.
Espanyol's task did not get any easier moments later when having already been booked for diving Coutinho was somewhat harshly shown a second yellow card for not handing the ball straight back to Osasuna to take a quick free-kick.
The hosts initially failed to make the man advantage count, but they got the second goal with 21 minutes remaining as Garcia picked up Marc Bertran's cross with his back to goal, flicked the ball in the air and then lofted a perfectly weighted chip over Casilla for his ninth goal of the campaign.
Osasuna were quite happy just to keep the Catalans at bay and any hopes of an Espanyol comeback were ended when Forlin jumped into the back of Garcia when challenging for a header inside the Osasuna half and was also given his marching orders.
A ninth home win of the season strengthens Jose Luis Mendilibar's side's position in the final Europa League spot as they are now four points ahead of Espanyol with six games to play.