Молодой помещичий сын Петруша Гринёв по воле отца отправляется служить в Оренбург. По дороге неопытного юношу обыгрывает на сто рублей в трактире хамоватый ротмистр Зурин. Потом Гринёв едва не погибает в буране, из которого его повозку выводит невесть откуда взявшийся в чистом поле оборванный мужик. На радостях Петруша дарит спасителю заячий тулуп.
Гринёву дают назначение в маленькую, плохо защищённую Белогорскую крепость. Там он знакомится с язвительным, саркастичным офицером Швабриным и Машей, дочерью местного коменданта, капитана Миронова.
Между Петрушей и капитанской дочкой вскоре возникает симпатия, а потом и любовь. Этим недоволен Швабрин, ранее безуспешно сватавшийся к Маше. Швабрин вызывает Гринёва на дуэль и коварным образом ранит его. Тем временем на Яике начинается восстание Пугачёва. Толпы мятежников нападают на слабую Белогорскую крепость и берут её. Отец и мать Маши Мироновой гибнут от рук бунтовщиков. К виселице волокут и Гринёва, но восседающий у места казни Пугачёв в последний момент приказывает помиловать его. Вскоре выясняется, что Пугачёв был тем самым провожатым, который некогда спас Петрушу во время бурана. Теперь он хочет отблагодарить Гринёва за подаренный тогда тулуп.
Пугачёв приглашает Петрушу к своему столу и зовёт к себе на службу. Верный присяге Гринёв отказывается. Пугачёву нравится его смелость и прямота, и он отпускает молодого офицера из плена.
Маша после гибели родителей впадает в горячку. Её прячут в крепости у попадьи. Пугачёв со своим войском на следующий день выступает из Белогорской, оставляя в ней новым комендантом перешедшего на сторону мятежников Швабрина. Гринёву приходится спешно уехать из крепости от этого своего врага, оставив капитанскую дочку в его руках. Петруша надеется добраться до Оренбурга и привести оттуда для спасения Белогорской воинский отряд.
Однако оренбургское начальство избегает всяких смелых предприятий и лишь обороняется за стенами города от осады его пугачёвской армией. Знакомый казак доставляет Гринёву письмо от Маши, где она сообщает, что Швабрин хочет насильно жениться на ней. В порыве отчаяния Петруша едет в Белогорскую вдвоём со своим крепостным дядькой Савельичем, но по пути их хватает застава пугачёвцев.
Гринёва приводят к вождю мятежа, который узнаёт его и принимает ласково. Петруша рассказывает Пугачёву о Маше и своей любви к ней. В припадке великодушия Пугачёв отправляется с Гринёвым в Белогорскую. Он приказывает Швабрину выдать Машу её истинному жениху и позволяет влюблённой паре уехать, куда ей угодно.
Гринёв отсылает капитанскую дочку в симбирское имение родителей, а сам, повинуясь присяге, присоединяется к высланному против пугачёвцев отряду правительственных войск. Этим отрядом командует Зурин, некогда обыгравший Петрушу в трактире. Мятеж вскоре усмиряют, но к Зурину приходит приказ арестовать Гринёва по обвинению в изменнических сношениях с Пугачёвым и доставить его в следственную комиссию. На следствии оказывается, что обвинителем против Гринёва выступил схваченный как мятежник Швабрин. Он уверяет, что Петруша был тайным агентом Пугачёва и передавал ему важные сведения во время осады Оренбурга. Гринёва приговаривают к смертной казни, заменённой вечной ссылкой в Сибирь.
Живущая у его родителей Маша, узнав об этом, едет в Петербург просить милосердия у самой императрицы. Капитанской дочке удаётся лично встретить Екатерину II в царскосельском саду. Выслушав все подробности истории, государыня распоряжается полностью оправдать невинного Гринёва. Петруша женится на капитанской дочке и позже сам составляет записки о необычайных поворотах своей нелёгкой судьбы.