Peter Taylor's side hit double figures against a weakened visiting outfit who were reduced to 10 men early, however it was enough for the hosts due to dramatic events in Tehran
The hosts needed to ensure they defeated Indonesia and hope Qatar lost to Iran, as well as turn around a nine-goal discrepancy in goal difference. The Bahrainis came close, piling on the goals, only for Qatar to equalise late in Tehran to draw 2-2.
Early on, the visitors had to play with 10 men after goalkeeper Syamsidar received a straight red card due to his foul on Ismaeel Abdulatif. The Al Nasr striker opened the scoring in the sixth minute from the penalty spot.
Indonesia's numerical disadvantage made it difficult for them to develop their gameplan, allowing Bahrain to easily improve their attacking intensity.
On 16 minutes, Andi Muhammad Guntur, Indonesia's substitute goalkeeper, blocked a shot from Abdulatif, but Mohammed Al Alawi slammed in the rebound to double the score for Bahrain.
Despite the pressure, Indonesia were still able to occasionally threaten Bahrain's defence from several counterattacks, but lacked support from the second line as Ferdinand Sinaga spurned some opportunities.
In the 34th minute, Peter Taylor's men were awarded another penalty after Abdulatif was fouled by Diego Michiels. This time a fierce shot from Mahmood Abdulrahman made it 3-0.
Abdulrahman scored his second goal in the match in 41st minute, converting a right-wing cross from Abdullah Omar.
In the second half, Bahrain continued to attack with goals crucial to their hopes of progressing and they were able to increase their lead in the 60th minute, thanks to Al Alawi.
Sayed Dhiya made it 6-0 and six minutes after his second goal, Al Alawi managed to score the first hat-trick of the game, while news filtered through that Iran were leading Qatar 2-1.
Abdulatif completed his double on 71 minutes, before Dhiya got in on the act with two more to complete his personal treble and make it double figures.
Unfortunately for Taylor's side, though, Mohammed Kasola's 86th-minute equaliser in Tehran for Iran meant they fell agonisingly short of a miracle result.