Ghana were their own worst enemies as they and Zimbabwe - who won 2-1 - went out of the African Nations Cup in Ismailia.
Without the suspended Laryea Kingston, Ghana were delighted captain Stephen Appiah recovered from an injured right foot, but he missed a great first-half chance on just about the only occasion his side threatened.
Zimbabwe might easily have gone ahead inside the first 10 minutes, veteran striker Peter Ndlovu curling two shots at goal which had Ghana goalkeeper Sammy Adjel worried.
Benjani Mwaruwari was also tormenting an unstable Ghanaian defence, while striker Gilbert Mushangazhike went close again for Zimbabwe just after the half-hour mark.
Ghana came to life and reacted, creating a clear chance in the 34th minute when Haminu's cross was nodded down by Joetex Frimpong and Appiah, barely eight yards from goal and centrally placed, lifted the ball over the bar.
Cephas Chimedza was given dead-ball responsibilities after Zimbabwe won a free-kick close to the edge of Ghana's penalty area, and his curling shot was punched to safety by Adjel.
Benjani missed another chance to put Zimbabwe ahead as Ghana stumbled to the break, grateful to still be level.
Ndlovu came close again soon after half-time, before making way for substitute Edzai Kasinauyo.
Appiah was next to shoot, Adjel just about holding on to his low 20-yard drive.
At that stage Ghana were heading for the quarter-finals, but a goal from Senegal against Nigeria changed the complexion of Group D.
It meant Senegal would pip Ghana to a place in the next round, and then came Chimedza's 59th-minute strike, helped into the net by unlucky defender Gabriel Issah's head.
John Pantsil's cross from the right almost brought an undeserved equaliser, with a deflection making it awkward for Zimbabwe goalkeeper Tapuwa Kapini, who saved at his near post.
But a second Zimbabwe goal arrived in the 68th minute, and again Ghana's defence claimed an assist.
It was Issah once more who had a part to play, making a mess of an attempted clearance before pushing the ball into Benjani's path with his left hand.
There was no referee's whistle, meaning Benjani was clean through, and his finish into the bottom-right corner effectively ended Ghana's tournament.
Abubakari Yakubu scuffed one shot which was easily cleared, but Ghana were beaten and probably knew it.
Indeed, Nigeria's fightback against Senegal - to lead 2-1 - meant Zimbabwe needed a 3-0 win to climb to second place and go into the last eight.
They almost got that third goal - thinking they had when Joel Lupahla found the net from close range, only to be denied, correctly, by a flagging assistant referee.
Zimbabwe continued to press, but the game's third goal went into their net, ending their daring bid and coming too late for Ghana to find time for an equalising goal which would have taken them onto four points and lifted them to second, above Senegal.