The Greek champions were stunned by Brana Ilic in the 11th minute but Javier Saviola ensured the scores were level at the break with his 21st-minute strike.
Paulo Machado fired Olympiacos ahead from the penalty spot in the 51st minute and Joel Campbell converted a second spot-kick in the moments that followed Simos Rouboulakos' dismissal on 69 minutes.
Substitute Tasos Kritikos pulled one back for ninth-placed Giannina three minutes from time, but to no avail.
Title hopefuls PAOK Salonika scored late on to deny third-placed Atromitos the chance to eat into their seven-point advantage.
Giorgos Tzavelas hit a last-minute equaliser to cancel out Dimitrios Papadopoulos' opener and rescue a 1-1 draw in Peristeri.
Panathinaikos are also chasing a Champions League place and showed their credentials by hammering Levadiakos 4-0 despite losing Anastasios Lagos to a red card.
The Pana midfielder did manage to score twice before being dismissed in the 68th minute, with further goals from Dorian Klonaridis and substitute Christos Donis inflicting a heavy home defeat on the 13th-placed team.
Carlos Calvo scored twice as Skoda Xanthi held onto sixth place with a 2-1 home victory over 10-man OFI Crete. Vassilis Koutsianikoulis halved the deficit before seeing red.
There were home wins for Panthrakikos and Panetolikos, who saw off Kalloni AEL and Platanias respectively.
Jose Maria Cases and Giannis Christou earned the Crocodiles their 2-0 victory, while Kalloni had Hugo Faria sent off, and goals from Giorgos Theodoridis, Milan Bojovic and Henri Camara sent Platanias home as 3-0 losers from Panetolikos.
Elsewhere, Ergotelis and Apollon Smyrni played out a 2-2 draw in Heraklion. Ziguy Badibanga and Antonis Petropoulos exchanged goals before the latter's second strike was cancelled out by Vitor Pele just before half-time.