На военной службеРодился в семье генерал-майора К. Ф. Витковского, происходившего из дворян Санкт-Петербургской губернии. Окончил 1-й Московский кадетский корпус (1903) и Павловское военное училище (1905).
Служил в лейб-гвардии Кексгольмском полку, командовал ротой и 1-м батальоном, в рядах которого участвовал в Первой мировой войне.
Участник Первой мировой войныВ 1914 году в составе полка выступил на фронт. Командовал ротой и батальоном, некоторое время являлся временно командующим своим полком и был произведён в полковники (6 декабря 1916). Награждён 19 апреля 1917 годаорденом Святого Георгия 4-й степени:
«За то, что в бою 15 июля 1916 года у д. Трыстень, командуя, в чине капитана, 1-м батальоном названного полка, получив приказание атаковать укрепленную позицию и взять д. Трыстень, под сильнейшим артиллерийским, ружейным и пулеметным огнем противника повёл батальон в атаку, личным примером воодушевляя людей своего батальона, прорвал неразрушенные нашей артиллерией проволочные заграждения, первым ворвался в окопы, выбил оттуда противника, после короткой штыковой схватки и, продвигаясь вперед, бросился в пылавшую д. Трыстень, после жестокого уличного боя овладел ею и, несмотря на убыль почти всех офицеров батальона, приняв командование 2 и 3 ротами, преследовал отходящего противника, отбил ряд последовательных контр-атак врага и, продолжая продвигаться вперед, захватил 4-х-оружийную тяжёлую и 6-орудийную легкую батареи, после чего окопался на занятой позиции.»
С 15 октября 1917 - командир 199-го пехотного Кронштадтского полка (в звании полковника).
Гражданская войнаВ начале 1918 вступил в 1-ю Отдельную бригаду Русских добровольцев под командованием Генерального штаба полковника М. Г. Дроздовского, с которой после похода от Ясс до Новочеркасска присоединился к Добровольческой армии. С июня 1918 - командир Солдатского батальона, затем - командир 2-го офицерского стрелкового полка. Участник Второго Кубанского похода. С декабря 1918 - командир бригады 3-й дивизии. С декабря 1918 - генерал-майор.
По сведениям историка С. Волкова, Витковский с весны 1918 года находился в отряде Дроздовского, а в июне был назначен командиром вновь сформированного Солдатского батальона. Через несколько дней, 24 июня, был назначен командиром 2-го полка вместо погибшего накануне полковника М. А. Жебрак-Русановича. Был награждён медалью «Поход Дроздовцев».
7 декабря 1918 года Витковский становится командиром бригады 3-й дивизии, 30 декабря произведён в генерал-майоры, 26 февраля 1919 года - назначен начальником 3-й дивизии (с августа - Стрелковой генерала Дроздовского дивизии). Командовал дивизией во время наступления ВСЮР на Москву (дошёл с боями до Орла) и в период отступления белых войск до Новороссийска. С апреля 1920 - генерал-лейтенант. Руководил успешным десантом Дроздовской дивизии у Хорл на Азовском море 17 апреля 1920 года. За боевые действия в Северной Таврии 24 июля 1920 года награждён орденом Николая Чудотворца 2-й степени (Пр. ВСЮР от 11 июля 1920 года № 167). С 17 августа 1920 - командир 2-го Армейского корпуса.
По воспоминаниям генерала барона П. Н. Врангеля, «генерал Витковский был генерал большой личной храбрости, прекрасно разбиравшийся в обстановке, исключительно хороший организатор». Митрополит Вениамин (Федченков) так вспоминал о своей встрече с Витковским на фронте в 1920: «Генерал Витковский, весьма симпатичный и, казалось мне, мягкий, с женственным лицом человек, давал нужные приказания своей части для отражения врага. Я тогда удивился его непостижимому для меня спокойствию, точно на парад он шёл».
В эмиграцииКомандование, штаб и командиры частей 1-го армейского корпуса в Болгарии. Сидят слева направо - генералы - Витковский, Кутепов, Штейфон. Стоят (за Кутеповым) генералы - Скоблин, Туркул. Болгария, г. Велико-Тырново, 2 апреля 1922 года.
В ноябре 1920 года с Русской армией генерала барона П. Н. Врангеля эмигрировал в Турцию. В Галлиполи командовал 1-й пехотной дивизией, в которую вошли все добровольческие именные части. Одновременно являлся начальником лагерного сбора и заместителем командира 1-го Армейского корпуса генерала Кутепова. В связи с его болезнью 8 декабря 1920 года вступил в командование корпусом.
В Болгарии в 1921-1922 - в командовании 1-м армейским корпусом, затем жил во Франции в Париже. С 1924 - командир 1-го армейского корпуса в составе Русского общевоинского союза (РОВС), который затем был переформирован в 1-й (французский) отдел РОВС, старший полковник группы Общества лейб-гвардии Кексгольмского полка (с 1951 года был его представителем в США). После похищения агентами ОГПУ в январе 1930 года генерала Кутепова А. П., стал председателем Общества галлиполийцев. По другим данным являлся председателем Общества галлиполийцев с 22 ноября 1921 года.
После Второй мировой войны жил в США, где руководил североамериканским отделом РОВС. Опубликовал книгу «В борьбе за Россию. Воспоминания» (Сан-Франциско, 1963)