The Manchester City striker scored two fine headers to decide the contest, first meeting a Max Gradel cross in the 26th minute, then powering a Yaya Toure free kick beyond Rais Mbolhi on 68 minutes.
Gervinho added a late third to seal the triumph, which dumps much-fancied Algeria out of the competition and sends Herve Renard’s side through to a semi-final with Democratic Republic of Congo.
Both defences appeared nervy in the early stages, with the Ivory Coast defence failing to deal with an Algerian cross and Gervinho and Serge Aurier going close at the other end.
As both sides settled, the Ivorians took the initiative, while Algeria struggled to find a cutting edge to match their superior passing.
The deadlock was broken after a quarter of an hour when Bony, ineffectual in the Nations Cup until now, met an excellent Gradel cross at the back post to send a bullet header past Mbolhi.
Algerian appeals for offside fell on deaf ears and replays proved that Bony had been comfortably onside, with experienced skipper Madjid Bougherra, for whom defeat signals the end of his international career, responsible for losing track of his man.
Algeria started the second half brightly and drew level on 51 minutes. Ivory Coast’s defence, belying their improved maturity under Renard, struggled with a Riyad Mahrez cross and El Arabi Soudani hammered the ball home.
Soudani had another fine chance on 66 minutes but forced an excellent save from Sylvain Gbohouo.
But it was Ivory Coast who once again stole the lead, with Bony leaping superbly for his second.
Renard’s side clung on, despite several late scares, before Gervinho’s late third.
The West Africans will now face DR Congo, who beat rivals Congo 4-2 in a pulsating clash on Saturday, in the first semi-final in Bata on Wednesday.
Ghana face hosts Equatorial Guinea in Thursday’s second semi.