A first-half penalty from Gareth Bale looked like giving Chris Coleman's side some hope in their World Cup qualifying Group A campaign until two goals in the last 13 minutes dashed their dreams.
Bale had also missed a gilt-edged chance in the first half that could have helped Wales close to within four points of their opponents - but Croatia showed why they are unbeaten so far by keeping on going right until the end.
Dejan Lovren got the breakthrough on 77 minutes with his strike from distance swerving just in front of the otherwise excellent Boaz Myhill, before Eduardo made up for some earlier missed chances by firing home the 87th-minute winner.
Croatia started the game brightly and quickly started to dominate possession - and they could have taken the lead on 12 minutes when Eduardo found space for a free header but then found his effort beaten away by Myhill.
Wales went in front on 21 minutes after Joe Ledley had found space in the box and had his run ended by just the faintest of touches from Lovren, leading the referee to point immediately to the spot.
Bale slotted down the middle for his fifth goal in six internationals as Wales took the lead against the run of play, and he could have made it two later on when Hal Robson-Kanu set-up him up at the edge of the box but his side-footed curler was palmed away by Stipe Pletikosa in the Croatia goal.
Bale should really have made it 2-0 on 37 minutes after great work from Robson-Kanu to win the ball and launch a long ball forward into the box. Bale's first touch to control the ball was impeccable, but his second was wasteful as he blazed over with just the keeper to beat.
Eduardo started the second half as he did the first by missing the target with a close-range header, and it summed up the next 15 minutes as Croatia pressed but could not find a way past Myhill.
The Wales keeper pulled out a brilliant reaction save on the hour mark when Ivan Rakitic's low drive took a big deflection just a couple of yards out before he stuck up an arm to palm the ball away.
Myhill was eventually beaten when Lovren fired a 25-yarder right at him 13 minutes from the end, but the ball took a wicked swerve away from him and he was unable to adjust to prevent the ball flying in.
Wales looked tired but looked like seeing out a draw before Eduardo got on the end of Ivica Olic's cross to volley home through Myhill's legs to keep Croatia unbeaten and level with Belgium at the top of the group - with Wales now down to fourth and a distant 10 points behind.