Eduardo struck three minutes from time as Croatia broke Wales' hearts in their 2014 World Cup qualifying match at the Liberty Stadium.
The visitors had trailed to Gareth Bale's first-half penalty, after Dejan Lovren brought down Joe Ledley.
Bale was a constant threat and should have added a second only to shoot over.
Lovren made amends with a long-range equaliser that swerved to fool Wales keeper Boaz Myhill, before Eduardo's snap-shot completed Croatia's comeback.
The defeat, coupled with drops Wales to fourth place in Group A and realistically ends any lingering hope of catching top two Croatia and Belgium.
With the midfield already missing David Vaughan, Andrew Crofts and Dave Edwards, Wales manager Chris Coleman handed Crystal Palace's 19-year-old Jonathan Williams his first start after an impressive debut off the bench at Hampden Park.
Andy King also started in midfield, while James Collins was preferred to Sam Ricketts in defence.
Wales had won three and lost just one of their last four games, but that defeat had come away to Croatia, who arrived in Swansea seven points ahead of their hosts and 62 places above them in the world rankings.
Croatia started with the high pressing game that had served them so well in their 2-0 win in Osijek the last time these two sides met, but Bale and Ledley combined effectively while Jonathan Williams caught the eye out on the right as Wales held their own.
Bale caused the first flutter of excitement, skipping past Luka Modric and bearing down on goal, only to be stopped by a clumsy challenge from Vedran Corluka.
The tackle earned the defender a yellow card which rules him out of Croatia's next game against Scotland, but Bale could not exact further punishment as he blazed the free-kick over the bar.
Croatia responded as Eduardo set up Sammir, but the Dinamo Zagreb forward's shot was deflected just wide. From the resulting corner James Collins failed to clear and only a frantic scramble saw the ball finally hacked away.
Wales had not led in any of their five previous Group A games, but that all changed in the 21st minute when Ledley surged into the visitors' box.
Lovren saw the danger too late and his sliding tackle sent the Celtic midfielder tumbling.
Referee Luca Banti had little hesitation in pointing to the spot, before showing Lovren a yellow card that also rules him out of the Scotland game, and Bale then thumped the ball straight down the middle past the diving Stipe Pletikosa.
Croatia were stung into action and it was all hands to the pumps for Wales, with Collins pulling off one outstanding challenge to deny Mario Mandzukic as he broke through on the right before Milan Badelj's shot was deflected just wide with Myhill wrong-footed.
A thrilling half ended with two excellent chances for Wales to double their lead, both falling to Bale, but Pletikosa produced a fine save plunging to his left before the Spurs forward - released by Hal Robson-Kanu - then wasted a glorious chance by shooting over the bar as the Croatian keeper advanced.
Croatia coach Igor Stimac responded at half-time by sacrificing Badelj, allowing Gordon Schildenfeld to take up station as a sweeper in an effort to nullify the pace of Craig Bellamy and Bale.
There was an early scare for Wales when Bellamy went down clutching his knee after a collision with Ivan Strinic, but the Cardiff man eventually hobbled to his feet after treatment.
Wales had to survive a series of corners as Croatia penned them back and Eduardo lost his marker to clip a header off the top of the bar, before Jonathan Williams drifted infield to send a snap-shot just past the post for the hosts.
Myhill then had to pull off a brilliant reaction save to keep Wales' lead intact, throwing out a hand as the ball cannoned off Eduardo.
Croatia replaced Sammir with Inter Milan's Mateo Kovacic, while Wales boss Coleman countered by sending Ashley Richards on for his second cap in place of Robson-Kanu.
Modric became the third Croatia player to rule himself out of their next game against Scotland with a clumsy tackle on Richards.
With 18 minutes left, Stimac played his last card by sending striker Ivica Olic on for defender Strinic, and the Wolfsburg player was soon in the thick of the action as Croatia continued to force Wales deep.
The pressure eventually told.
Chris Gunter did well to block a shot on the left but the ball fell to Lovren, whose shot seemed to move late across Myhill to nestle in the net.
Wales refused to buckle and Bale galloped up the left to send a shot across goal, before Olic wasted a great chance after being teed up by Ivan Rakitic, scooping his shot over the bar from eight yards.
The home side looked like they had weathered the storm, only to have their hopes crushed two minutes from time as Eduardo showed great skill to bring down Olic's cross and strike a left-foot volley past Myhill.