The Cowboys pulled off one of the biggest boilovers of the year in front of 41,287 at ANZ Stadium in Sydney.
The Cowboys only snuck into eighth spot when St George Illawarra were beaten by Canterbury in the last round but will now take on the Sydney Roosters next Saturday for a spot in the grand final.
The Townsville side were effectively written off after co-captains Johnathan Thurston and Matt Scott were ruled out for the year but continue to defy the odds.
Halfback Michael Morgan was outstanding, dictating terms with his kicking game before scoring the match-sealing four-pointer five minutes from fulltime.
The Eels melted under the pressure, making 13 errors and completing just 26 of 39 sets, as a season which promised so much came to a disappointing end.
Cowboys lock Jason Taumalolo only solidified his reputation as the best forward in the competition, running for 236 metres from 21 runs as well as making 33 tackles.
The Cowboys took the lead for the first time five minutes after the break when the Eels allowed a Morgan torpedo to bounce and John Asiata snatched it out of the grasp of Will Smith.
The visitors went further ahead when Te Maire Martin turned it inside for Coen Hess, setting off an all-in push and shove.
Eels hooker Cameron King appeared to lead with his knees as Hess grounded the ball and was lucky not to incur an eight-point try while Manu Mau'u struck Ben Hampton in the neck but was not punished.
The Eels had taken a 10-6 lead into halftime thanks to two runaway efforts off North Queensland kicks.
Semi Radradra raced 100m to open the scoring in the seventh when Martin found him on the full before Smith scooped up a poorly-placed Morgan kick nine minutes before the break.
Cowboys coach Paul Green, who during the week labelled the Eels as "certainties", said the win ranked as the club's second-greatest victory behind their 2015 grand final win.
Asked if they could trouble the Roosters, Green said: "Yes. I think we've got some smart players, some physical players, we can mix it with any team.
"We've proved through those losses that in different parts of those games, we were worrying teams, even though we didn't win.
"I've said all along, our game is good enough, we just weren't doing it for long enough."
Eels coach Brad Arthur conceded their lack of finals experience came back to bite them and they turned in one of their worst efforts of the year.
"The last 40 minutes we probably played our worst 40 minutes of the season," Arthur said.
"They taught us a lesson in semi-finals football. They dominated field position and possession."