Софья Каштанова родилась 6 августа 1987 года в Москве. Отец — Андрей Каштанов, писатель и сценарист. Мать — Алла Каштанова, актриса. Родители развелись и девочка с мамой переехала в Мексику, где Алла вышла замуж за мексиканца.
С 9 до 15 лет Софья жила в Мексике, где занималась латиноамериканскими танцами и конным спортом, а также окончила школу экстерном.
Вернувшись в Москву, Каштанова поступила в школу-студию МХАТ на курс Романа Козака и Дмитрия Брусникина, которую окончила в 2007 году.
В 2005 году, будучи студенткой, Софья Каштанова дебютировала в кино, сыграв роль Кристины в сериале «Студенты».
Первую известность актриса получила в 2010 году, сыграв главную роль в фильме «Случайная связь», показанном на ММКФ.
В 2013 году Каштанова исполнила роль Софи Лорен в сериале «Оттепель».
Широкая популярность пришла к актрисе в 2016 году благодаря роли Кристины в комедийном сериале «Полицейский с Рублёвки».
Впоследствии актрисы сыграла звездную роль в продолжениях телехита: «Полицейский с Рублёвки в Бескудниково» (2017), Полицейский с Рублёвки. Снова дома (2018), Полицейский с Рублёвки. Мы тебя найдём (2018), Полицейский с Рублёвки. Новогодний беспредел (2018), Полицейский с Рублевки 5 (2019) и Полицейский с Рублёвки. Новогодний беспредел 2 (2019).
Также известными киноработами Каштановой стали роли в сериалах «Психологини» (тренер личного роста Виктория Покровская, 2017) и «Мылодрама 2» (Юлия, 2019).
«Психологини» вообще классная история, это здорово, когда в комедийной форме обсуждаются реальные женские проблемы. Поверьте, это непросто. И моя Вика очень непростая, я бы сказала, слишком самостоятельная», — рассказала Софья Каштанова в интервью журналу «7 Дней» (июнь, 2019).
В начале 2019 года Софья впервые стала мамой — у нее родился сын, которого актриса назвала Джорджем. Про отца своего ребенка Софья предпочитает не распространяться.
«Изначально хотели назвать Георгием, но в Мексике как-то странно было бы записать его таким именем, поэтому Джордж», — рассказала Софья Каштанова в интервью журналу «7 Дней» (июнь, 2019).
В 2020 году Софья Каштанова вновь сыграла психолога Вику Покровскую в сериале «Психологини на карантине».
Сын — Джордж (родился в начале 2019 года в Мексике), личность отца актриса не раскрывает