Петр Гаврилов родился 30 июня 1900 года в селе Альведино, Республика Татарстан. Окончив Казанскую центральную крещено-татарскую школу, поступил на завод чернорабочим, чтобы помочь семье. Весной 1918 года вступил добровольцем в Красную Армию.
Услышав первые взрывы на рассвете 22 июня, майор Гаврилов сразу понял: началась война. Он попрощался с женой и сыном и ушел на фронт, был командиром 44-го стрелкового полка. 23 июля 1941 года от взрыва снаряда в каземате получил тяжёлое ранение и в бессознательном состоянии был пленён. Годы войны провёл в гитлеровских концлагерях Хаммельбурга и Ревенсбурга, испытав все ужасы плена. Освобождён советскими войсками в мае 1945 года в концлагере Маутхаузен. С осени 1945 года – начальник советского лагеря для японских военнопленных в Сибири. Он предотвратил эпидемию тифа среди японцев, ликвидировал злоупотребления со стороны японских офицеров, через которых снабжались пленные солдаты. Получил несколько благодарностей по службе за хорошую постановку дела в лагере. В июне 1946 года уволен в запас.
После войны Петр Михайлович вернулся на родину, работал в совхозе директором сельского кирпичного завода. С 1968 года и до конца жизни жил в Краснодаре, в доме 103 на Светлой улице (в 1980 году она была переименована в улицу Гаврилова). Много ездил по стране, активно занимался общественной работой.
Указом Президиума Верховного Совета СССР от 30 января 1957 года за образцовое выполнение воинского долга при обороне Брестской крепости в 1941 году и проявленные при этом мужество и героизм Гаврилову Пётру Михайловичу присвоено звание Героя Советского Союза с вручением ордена Ленина и медали “Золотая Звезда”.
П. М.Гаврилов скончался 26 января 1979 года в Краснодаре. Похоронен с воинскими почестями на гарнизонном мемориальном кладбище Бреста рядом с его боевыми товарищами согласно завещанию.