The visitors were impressive in the first half and O’Neill’s men took the lead when Craig Gardner’s cross found Adam Johnson, with the England international firing past Tim Howard.
However, Steve Naismith teed up in-form Marouane Fellaini and the Belgian fired a low shot past Sunderland goalkeeper Simon Mignolet with 15 minutes remaining.
David Moyes’ side then completed the reversal when Fellaini’s ingenious flick fed Nikica Jelavić, and the Croatian striker finished off a stylish Everton move to seal three points.
“We could have been three up by half-time,” O’Neill told BBC Sport.
“Finally we got a goal, which we deserved. In the second half obviously we were put under pressure but we were coping very well indeed, but then they hit us with two goals in something like three minutes. We created many good chances, and we were a bit unlucky.
“There’s a great spirit among my players, and that was epitomised today. We played a side going for a Champions League spot, and I think we were very unlucky.”
O’Neill also criticised referee Lee Mason for what he felt was a below-par performance, with the Blacks Cats boss particularly aggrieved by Danny Rose’s late yellow card.
“I don’t normally criticise referees, but Danny Rose’s booking in the final minutes beggars belief. I don’t know how he could see that from so far away, and that was the story of the game,” he added.
MORE: Man United latest news
MORE: Arsenal latest news
MORE: Chelsea latest news
MORE: Liverpool latest news