Родился в семье генерал-майора К. Ф. Витковского, происходившего из дворян Санкт-Петербургской губернии. Окончил 1-й Московский кадетский корпус (1903) и Павловское военное училище (1905).
Служил в лейб-гвардии Кексгольмском полку, командовал ротой и 1-м батальоном, в рядах которого участвовал в Первой мировой войне.
В 1914 году в составе полка выступил на фронт. Командовал ротой и батальоном, некоторое время являлся временно командующим своим полком и был произведён в полковники. Награждён 19 апреля 1917 года орденом Святого Георгия 4-й степени:
С 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-й степени. С 17 августа 1920 — командир 2-го Армейского корпуса.
По воспоминаниям генерала барона П. Н. Врангеля, «генерал Витковский был генерал большой личной храбрости, прекрасно разбиравшийся в обстановке, исключительно хороший организатор». Митрополит Вениамин (Федченков) так вспоминал о своей встрече с Витковским на фронте в 1920: «Генерал Витковский, весьма симпатичный и, казалось мне, мягкий, с женственным лицом человек, давал нужные приказания своей части для отражения врага. Я тогда удивился его непостижимому для меня спокойствию, точно на парад он шёл».
В ноябре 1920 года с Русской армией генерала барона П. Н. Врангеля эмигрировал в Турцию. В Галлиполи командовал 1-й пехотной дивизией, в которую вошли все добровольческие именные части. Одновременно являлся начальником лагерного сбора и заместителем командира 1-го Армейского корпуса генерала Кутепова. В связи с его болезнью 8 декабря 1920 года вступил в командование корпусом. В Болгарии в 1921—1922 — в командовании 1-м армейским корпусом, затем жил во Франции в Париже. С 1924 — командир 1-го армейского корпуса в составе Русского общевоинского союза (РОВС), который затем был переформирован в 1-й (французский) отдел РОВС, старший полковник группы Общества лейб-гвардии Кексгольмского полка (с 1951 года был его представителем в США). После похищения агентами ОГПУ в январе 1930 года генерала Кутепова А.П., стал председателем Общества галлиполийцев. По другим данным являлся председателем Общества галлиполийцев с 22 ноября 1921 года.
После Второй мировой войны жил в США, где руководил североамериканским отделом РОВС. Опубликовал книгу «В борьбе за Россию. Воспоминания» (Сан-Франциско, 1963)