Bale struck in first-half stoppage time – his 33rd goal extending his own Wales record – to cancel out Nikola Vlasic’s ninth-minute strike for the World Cup finalists.
The draw leaves Wales’ qualifying destiny out of their own hands heading into the final two rounds of games next month.
But wins away to Azerbaijan and at home to Hungary would be enough for a top-two spot, as long as Slovakia do not collect four points from their last two games.
Slovakia’s next game is in Croatia, and the Group E leaders will have plenty to play for as they have not booked their ticket to next summer’s European Championship.
Wales were dealt a pre-match blow with Aaron Ramsey failing to recover from a groin problem.
It was the latest injury setback for Ramsey, who has missed the entire Euro 2020 qualifying campaign, and it is now 11 months since the Juventus midfielder last represented his country.
So Wales manager Giggs named an unchanged side, with Ethan Ampadu and Jonny Williams shaking off knocks picked up in Slovakia on Thursday.
That 1-1 draw was a decent outcome, but there was bad news before kick-off as Hungary beat Azerbaijan to move into second place and open up a five-point gap on Wales.
Croatia quickly settled into their passing rhythm with Josip Brekalo wildly firing wide.
Wales wanted a penalty when Daniel James was barged to the floor by Dejan Lovren but Dutch referee Bjorn Kuipers was not interested, deeming it a fair shoulder-to-shoulder challenge.
Croatia were ahead within seconds as Brekalo broke away from Tom Lockyer and found Bruno Petkovic.
The ball was fed to Vlasic who beat Wayne Hennessey with a low shot which went in off a post.
Croatia nearly doubled their lead when Petkovic picked out Ivan Perisic with a superb lofted pass and Hennessey was awake to turn his header around a post.
James was on the end of a heavy challenge from Domagoj Vida, which earned the Croatia defender a yellow card and saw a stretcher called for the Manchester United winger.
But James eventually returned to his feet and was able to continue, although Wales were making little progress as the visitors dictated the tempo.
Bale shot straight at Dominik Livakovic and fired a free-kick straight into the Croatia wall, but Wales’ captain was dropping so deep to get on the ball that he was sometimes the wrong side of the halfway line.
Croatia were content to keep the ball and frustrate Wales, but their plan was rocked in the third minute of first-half stoppage time.
Ben Davies – who was winning his 50th cap – surged forward from his left-back station and reclaimed the ball with Croatia crying foul on Mateo Kovacic.
But the referee was unmoved and Davies’ perfectly weighted pass caught out Lovren for Bale to find the bottom corner of Livakovic’s net with ease.
Kovacic needed treatment after the goal and did not reappear for the second half, and Croatia showed their resentment straight after the restart.
Ampadu was the victim of an awful Petkovic aerial challenge, with the striker maybe fortunate to see a yellow rather than a red card.
The teenager took no further part in proceedings with Joe Morrell sent on to replace him.
Croatia escaped when James broke his shackles to test Livakovic, with the goalkeeper holding on at the second attempt as Moore sniffed a rebound.
Joe Allen picked up a booking in the closing moments to rule him out of the Azerbaijan qualifier, but Wales remain in the qualification hunt.