Выпускник Ярославского государственного педагогического университета. Первый тренер — Александр Сергеевич Шадинов.
Сергей Гранкин начал заниматься волейболом в 7 лет, в 14-летнем возрасте получил приглашение от ярославского «Нефтяника», где переквалифицировался из нападающего в пасующие, в 17 лет начал выступления в Суперлиге. Под руководством Сергея Шляпникова, главного тренера «Нефтяника» и молодёжной сборной России, мастерство и лидерские качества игрока раскрылись достаточно быстро.
Сергей Гранкин был капитаном молодёжной сборной России на победных для неё чемпионате Европы 2004 года в Хорватии и чемпионате мира 2005 года в Индии, где он впервые заявил о себе по-настоящему громко. Во многом благодаря настрою капитана был выигран финальный матч со сборной Бразилии: в первом сете при счёте 23:16 в пользу соперников россияне набрали на подачах Гранкина 7 очков подряд, и вытащив безнадёжную партию, надломили бразильцев, которые проиграли и две следующие партии.
Сезон-2005/06 Сергей провёл в столичном «Луче», с осени 2006 года играет в «Динамо». В сборной России дебютировал 16 июля 2006 года на Мировой лиге, выйдя на замену во втором московском матче против команды Франции, а 28 июля в Генуе впервые вышел в стартовом составе сборной, разгромившей в тот день итальянцев 3:0.
В 2006—2011 годах Сергей Гранкин входил в заявку сборной России на все турниры, сыграв более 140 официальных матчей. В 2008 году завоевал «бронзу» Олимпийских игр в Пекине, в 2010 году был признан лучшим связующим «Финала шести» Мировой лиги в Кордове, а через год в Гданьске стал победителем турнира Мировой лиги. Из-за травмы, полученной в игре за «Динамо», не смог принять участие в розыгрыше Кубка мира-2011.
Осенью 2009 года Гранкин был выбран капитаном столичного «Динамо». В сезоне-2011/12 завоевал первый международный титул в клубной карьере — Кубок Европейской конфедерации волейбола.