Perjanjian dengan Belanda
Pada bulan Agustus 1784, tentara Belanda mulai menyerang pusat pemerintahan Johor di Hulu Riau. Kemudian pada Oktober 1784, kapal Utrecht dan 6 buah kapal perang yang dipimpin oleh laksamana Jacob Pieter van Braam datang menyerang Riau. Pertempuran meletus antara Johor dan Belanda di Hulu Riau yang berakhir dengan kemenangan Belanda atas Johor. Yamtuan Muda Raja Ali (pengganti Raja Haji Fisabilillah yang syahid di Teluk Ketapang) kemudian meninggalkan Pulau Bintan ke Sukadana. Sultan Mahmud yang berada di Riau kemudian menandatangani perjanjian dengan VOC di kapal Utrecht pada tanggal 10 November 1784.
Di antara isi perjanjian tersebut mencatatkan bahwa pelabuhan Riau menjadi milik Belanda, menyerukan berakhirnya monopoli Bugis di atas kantor Yamtuan Muda, hingga melarang orang Bugis lainnya untuk memegang jabatan di pemerintahan Johor.
Gerilya laut
Pada bulan Juni 1785, Belanda mengirim David Ruhde ke Hulu Riau untuk memegang jabatan Residen Belanda. Kehadiran Belanda di Riau-Lingga tersebut tidak disenangi oleh Sultan Mahmud.
Sultan Mahmud Syah III kemudian secara diam-diam mengirim utusannya, Encik Talib, ke Tempasuk di Sabah, Borneo Utara. Ia minta bantuan kepada Raja Tempasuk, Raja Ismail asal Johor untuk memerangi Belanda di Riau-Lingga. Raja Tempasuk mengirim tiga anaknya (Raja Tebuk, Raja Alam, dan Raja Muda Umak) serta Datuk Sikolo, dengan Raja Ismail sebagai panglima besarnya.[2]
Pada tanggal 13 Mei 1787, pasukan Sultan Mahmud (beserta pasukan Raja Ismail dari Tempasuk) menyusup ke selatan Terusan Riau melalui Penyengat dan Senggarang. Saat malam tiba, pasukan Sultan mulai menampakan diri dari benteng kecil di bukit, kemudian maju dari arah gunung merapat ke kapal besar yang mengangkut barang dagangan sehingga pertempuran tidak terelakkan lagi.[11] Mereka menggempur dan menghabisi satu garnisun Belanda di Hulu Riau. Bantuan ini berhasil mengalahkan Belanda di Riau-Lingga pada bulan Mei 1787.
Akibat dari serangan itu banyak pasukan Belanda yang melarikan diri. Bahkan, seorang residen Belanda di Hulu Riau, David Ruhde, melarikan diri ke Melaka.[11] Tentang peristiwa tersebut, Raja Ali Haji menguncinya di dalam Tuhfat al-Nafis:[12]
Seekor Holanda pun tiada lagi tinggal dalam Negeri Riau setelah diserang pasukan Sultan Mahmud Riayat Syah itu.