A double from midfielder Bryan Cristante was enough for the Bergamo side to stay at the top of Group E ahead of their decider with Lyon.
Joel Robles saved Alejandro Gomez's penalty and Sandro Ramirez drove in a good finish with 20 minutes to play, but it was nothing more than a consolation as substitutes Robin Gosens and Andreas Cornelius scored three late on.
Cristante goal sours Toffees' bright start
Everton started brightly enough, with Tom Davies firing over from the edge of the area in the opening minutes and a good move down the right flank only being stopped by Ramirez' poor pull-back into the area, but there was a sense of resignation around the ground when the away side took the early lead.
With the Atalanta fans capitalising on the empty Goodison Park seats to create an intimidating atmosphere of their own, an incisive move down the right channel ended with the ball breaking for Cristante in the area. The midfielder tucked it in from close range, and the away side took control.
Everton threaten but behind at half-time
It wasn't until around the half-hour mark that Everton really looked like creating a goalscoring chance, but David Unsworth will feel his side should have been level.
Kevin Mirallas got free through the centre but his touch took him wider than he would have liked and his close-range shot was charged down by visiting keeper Etrit Berisha. The rebound fell invitingly to Ramirez, but the forward snatched at the chance and blazed it over the crossbar.
While Everton weren't exactly stamping their authority on the game, they were improving in attack as the first half wore on and it took a superb goalline clearance from Rafael Toloi to prevent Davies from levelling the scores.
Robles penalty save keeps Everton alive
The home fans had their heads in their hands with just a couple of minutes of the second half played as Atalanta were awarded a penalty.
Goalscorer Cristante looked ready to claim a second of the game but he was brought down by Ashley Williams as he shaped to shoot.
Alejandro Gomez stepped up to take the spot-kick but Joel Robles got down superbly to save to his right and smother the rebound, with the waiting defenders reacting well to clear the danger as the ball stayed live.
Rather than spur Everton into life, though, the save seemed to wake Atalanta back up as they embarked on their best spell of pressure of the game. Gomez forced a save from Robles from range, and a goalline clearance was needed to keep the score at 0-1 from a corner soon after.
Everton hope flattened by late triple
Atalanta seemed to have an advantage from set pieces, and it was another corner from the left that brought the second goal. It was a powerful, swerving delivery towards the line of the six-yard box and an equally powerful header from Cristante, claiming the second of the night to leave Everton floundering.
They were back within a goal soon after, though, with Ramirez pulling a goal seemingly out of nowhere. He received the ball inside the area from Mirallas but had to execute an impressive finish from an angle, swivelling and firing hard and low into the far corner.
Everton had chances for a comeback but were made to pay in the closing minutes as Atalanta struck twice in the space of two minutes. First, substitute Gosens directed a superb half-volley through a crowd and in off the far post, before fellow replacement Cornelius rolled the ball under Robles from close range almost immediately after.
The stadium was almost empty when Cornelius rubbed salt into the wounds with another header from a corner deep into stoppage time - Atalanta's fans were raucous in the away end, Everton's flat and embarrassed once again.
Robles comes away with credit
Atalanta didn't exactly pepper the Everton goal with goals during the game, but Joel Robles finished the night with a fair claim to being Everton's best player.
The penalty save aside, the Spaniard made some smart stops early in the second half and had to be especially alert to rush off his line and clear an underhit pass back from Williams soon after Everton had gone 2-0 down.
With Everton out of Europe the 27-year-old isn't likely to see too much first-team football until the FA Cup kicks off for the top-flight sides in the new year, but he can be satisfied with his performance against the Italian side at least.
Klaassen struggles to make an impact
When Davy Klaassen signed for Everton this summer, he can't have imagined that his new side would be out of Europe and flirting with the relegation zone by the end of November - but his performance spoke volumes about Everton's struggles this campaign.
Deployed on the left of a midfield three and drifting at times out to the left wing, the game simply seemed to leave him behind as he was bypassed by both sides.
Atalanta were happy to run the ball around him and his midfield partners Davies and Beni Baningime seemed more enthusiastic and ready to receive the ball from their teammates and try to make something happen.
When Klaassen got on the ball, he was technically sound and seemed keen to get forward but this happened far too infrequently. If Everton are to turn their season around, they need to find a way to get the best out of the man tipped for big things at the beginning of the season.
Mirallas spark shows Everton what they are missing
It was hardly surprising that Everton's best chances came from their most dynamic forward, Kevin Mirallas. In an often flat, one-paced team, it was the Belgian who posed the main threat to the Atalanta defence with his direct running and harrying of the visiting defence.
With Unsworth apparently involved in planning for the upcoming January transfer window, this was a performance which should have made even more clear what it is that the Toffees need - pace and purpose.
Henry Onyekuru could be recalled from his loan at Anderlecht and Yannick Bolasie will eventually return from injury, and Mirallas' effectiveness tonight may well give supporters hope that a more dynamic presence in attack could solve some of the issues that the uninspiring Toffees have had.