Bale, who has had a difficult start to the season at Real Madrid, scored during first-half injury time after Nikola Vlasic's opener for Zlatko Dalic's men.
The first chance of the match fell to Josip Brekalo but the Croatia left-back's effort from outside the box went wide.
Dalic's outfit took the lead on just nine minutes.
Brekalo broke down the left flank, found Bruno Petkovic inside the box who laid off the ball to Vlasic, who smoothly beat goalkeeper Wayne Hennessey.
Wales' first shot on target came shortly afterwards with Bale testing Dominik Livakovic with a half-volley.
Hennessey then made up for failing to stop Vlasic's effort on 13 minutes when he dived down low to stop an Ivan Perisic shot.
On the quarter-hour mark, Manchester United's Daniel James, who threatened without much final product throughout, suffered what looked like a concussion.
The former Swansea winger competed with Domagoj Vida for a high ball and the Welshman finished on the ground. He received medical treatment and continued.
Wales pressed for an equaliser and Bale claimed it in injury time.
Tottenham defender Ben Davies beat Mateo Kovacic and found Bale inside the box who cooly placed his shot across Livakovic for his 33rd international goal.
Barcelona playmaker Ivan Rakitic replaced Kovacic for the second half.
Wales forward Kieffer Moore, who scored on his international debut in the midweek draw at Slovakia, caused Croatia's defence trouble in the air throughout.
The only negative came on 57 minutes after he was shown a yellow card for a challenge on Liverpool centre-back Dejan Lovren.
Bale's Real teammate Luka Modric was substituted due to injury with a leg problem while the Welsh winger himself seemed to struggle through the closing moments with an issue himself.
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 beat Croatia.