Sosok Kartini (Dian Sastrowardoyo) yang nampak kalem, lembut ternyata memiliki sisi lain yang mungkin belum sebagian orang tahu. Dia lincah dan selalu bertanya, tak heran orang-orang di sekitarnya memanggilnya Trinil--burung kecil yang lincah dan selalu mengeluarkan suara nyaring.
Dia yang terkesan tomboy, tak segan memanjat tangga untuk duduk di bagian atas salah satu tembok pembatas rumah bersama kedua adik perempuannya, Kardinah (Ayushita Nugraha) dan Roekmini (Acha Septriasa).
Bahkan, ketika di pantai dia sampai harus mengangkat kainnya sedikit lebih tinggi agar bisa berlari kencang menantang ombak.
Kartini sedari kecil terkungkung dalam rumah, dijauhkan dari sosok ibu kandungnya, Ngasirah (Christine Hakim) karena bukan berasal dari kalangan bangsawan.
Ngasirah harus menerima kenyataan bahwa sang suami, Raden Mas Adipati Ario Sosroningrat (Deddy Sutomo) menikah lagi dengan Raden Ayu Moeryam (Djenar Maesa Ayu), putri seorang raja Madura, demi bisa menjadi Bupati Jepara.
Kartini yang dikenal begitu cerdas di sekolah dasar tak lagi bisa mengenyam pendidikan ke jenjang lebih tinggi karena harus dipingit, menunggu bangsawan melamarnya untuk menjadi Raden Ayu.
Dia diam saja menghadapi semua itu? Tidak. Memanfaatkan kedekatan dengan Rosa Abendanon-Mandri, Stella Zeehandelar, para wanita Belanda, Kartini "berontak", lewat pemikiran yang ia tuangkan dalam tulisan-tulisannya. Tulisan-tulisan itu dimuat dalam majalah Belanda, De Hollandsche Leile.
Sekalipun akhirnya seorang wakil Bupati Rembang yang menunggu waktu menjadi bupati, Raden Adipati Joyodiningrat (Dwi Sasono) mempersuntingnya, tak berarti keinginan Kartini mengubah nasib perempuan melalui pendidikan sirna. Ada syarat yang harus dipenuhi Adipati untuk Kartini.