Granada edged the encounter in every department but the lead given to them by Youssef El Arabi's 23rd-minute goal was being increasingly tested until the decisive incident in the 79th minute, when Fernando Nano felled Yacine Brahimi in the penalty area.
Nano saw red and Guilherme Siqueira's cheeky dinked penalty wrapped up three vital points, before Diego Buonanotte added an exclamation mark late on.
The win sends Granada seven points clear of the relegation zone before 18th-placed Deportivo La Coruna face Espanyol on Sunday. If Depor fail to win that match, Granada will be safe.
The hosts certainly earned their lead as they enjoyed much the better of the first half.
Emiliano Armenteros and Diego Mainz both went close with headers inside the opening two minutes, while Carlos Aranda had the ball in the back of the net in the 13th minute, only to be denied by an offside flag.
Aranda should have opened the scoring in the 22nd minute when he broke the offside trap but he tried to go around the goalkeeper, pushed the ball too far and fired into the side-netting.
However, they were ahead moments later with a fortunate bounce freeing Siqueira on the left to cross for El Arabi to tuck home.
Nolito's ambitious effort was beaten away by Andres Fernandez as they went for a second, while at the other end Roberto Fernandez used his feet to deny Miguel De las Cuevas from close range.
Granada continued pushing after the break but El Arabi and Nolito both squandered chances.
The longer the game went on the more Osasuna became a force, particularly on the counter-attack, and Francisco Silva went close with a cross-shot on the hour mark.
Granada continued to commit men forward and it almost paid off when fine work from Yacine Brahimi set up a crossing chance but El Arabi could only find the side-netting under pressure.
Osasuna then struck the crossbar with a fine effort from De las Cuevas from 20 yards, but it was as close as they came as their hopes were effectively ended 11 minutes from time.
El Arabi latched on to a long ball over the top and the substitute Nano came in late with a desperate last-ditch tackle which only earned him an early bath and Granada a penalty.
Siqueira chipped it home as Fernandez went the wrong way and Buonanotte wrapped it up with a fine third in injury time, cutting in from the right and finishing from the edge of the area.