Abdulla Al-Zouri scored a 90th-minute winner after a Nasser Al Shamrani double (52 and 65) had brought the visitors back into the contest.
Meshari Al Enezi put the hosts ahead in the 16th minute and Aedh Al Jawni doubled their lead five minutes after the break, but it was not enough.
Third-placed Al Shabab also had to come from behind as Fernando Menegazzo's 82nd-minute penalty earned them a 1-1 draw at Al-Ittihad.
The hosts went ahead in the 43rd-minute thanks to Mokhtar Falatah's spot-kick.
Elsewhere, Adnan Falatah's goal helped Al-Tawon to a 1-0 win at home to Al-Fateh, and Al-Sho'ola and Al-Nahda drew 0-0.