С конца апреля и до июля продолжалась позиционная война и маневрирование без прямых столкновений. В начале июля Цезарь неудачно атаковал занятый противником Диррахий, а помпеянцы столь же безуспешно атаковали лагерь Цезаря, воспользовавшись тем, что полководца там в этот момент не было. Затем Цезарь атаковал один из неприятельских легионов, располагавшийся изолированно, но Помпеи успел перебросить на помощь своим конницу, а затем еще пять легионов Цезарианцы потерпели поражение, и в их рядах вспыхнула паника. С трудом, потеряв более тысячи человек убитыми, войско Цезаря укрылось в лагере, который противник не решился штурмовать.
После этого Цезарь двинулся в Фессалию, рассчитывая разбить там два легиона Сципиона. Большинство городов Фессалии признали власть Цезаря. Через несколько дней сюда же прибыла и армия Помпея, к которой присоединились основные силы Сципиона. Оба противника сошлись у города Фарсала, где произошла решающая битва. По утверждению Цезаря, у Помпея было 50 тысяч солдат, в том числе 7 тысяч кавалеристов, а у него самого—в полтора раза меньше, в том числе всего 1100 всадников. Более правдоподобно, что силы сторон были примерно равны. По оценке Г. Дельбрюка, исходившего из критического анализа имевшихся в его распоряжении источников, у Помпея было 40 тысяч пехотинцев и 3 тысячи кавалеристов, у Цезаря — 30 тысяч пехотинцев и 2 тысячи кавалеристов.
Победу Цезарю обеспечили больший боевой опыт его легионов и ошибки противника. Обе армии, как обычно, выстроились в три линии, имея на одном фланге конницу, а на другом — легковооруженных лучников и пращников. Вначале конница Помпея потеснила конницу Цезаря, но затем попала под удар шести когорт, скрытых Цезарем за своим правым флангом. Поражение конницы решило участь армии Помпея. Конница и пехота Цезаря атаковали во фланг центр неприятельского войска и обратили его в бегство.
По утверждению Цезаря, он потерял 200 человек убитйми. Потери же Помпея будто бы составили 15 тысяч убитыми и 24 тысячи пленными. При этом Цезарь исходил из явно завышенных данных о численности помпеевской армии — 45 тысяч пехоты и 7 тысяч кавалерии. Число пленных, возможно, и недалеко от истины, а число убитых завышено многократно. Если предположить, что вместе с Помпеем спаслось 13 тысяч человек, то общая численность его армии должна была бы быть не менее 52 тысяч человек (если потери убитыми были такими же, как у Цезаря). В действительности же, если принять ее численность в 43 тысячи человек и общее число пленных в 24 тысячи, то потери убитыми у Помпея скорее всего не превышали 6 тысяч. Вполне возможно, что приводимые Цезарем данные о его собственных потерях значительно преуменьшены, и в действительности они превышали 1 тысячу человек. Тем более что Цезарь признает: среди 200 убитых 30 человек были старыми, заслуженными центурионами. Если предположить, что в такой же пропорции гибли и рядовые легионеры, то общее число убитых в Фарсальской битве со стороны Цезаря можно оценить примерно в 1800 человек. Не исключено, что основная часть легионеров Помпея после поражения его конницы просто перешла на сторону победителя, чем и объясняется такое большое число пленных.
С остатками своих войск Помпеи бежал. Солдаты Цезаря ворвались в его лагерь в Лариссе, где им сдались 13 тысяч спасшихся при Фарсале. Но Помпей успел с немногими сторонниками добраться до моря и сесть на корабль. Сначала он пытался укрыться на Родосе или Кипре, но жители островов отказались приютить неудачника. На короткое время беглец остановился в порту Митилена на Лесбосе, где к нему присоединись жена и один из сыновей. Сначала Помпеи думал искать пристанища в Парфии, где надеялся получить под свое начало большое войско и в союзе с давними врагами римлян взять реванш у Цезаря. Приближенных Помпея такая перспектива явно не вдохновляла. Они уговорили патрона попытать счастья в Египте.
Египетский царь Птолемей XIII воевал в это время со своей сестрой и соправительницей Клеопатрой Он с войском стоял у города Пелусия. Туда и направились несколько судов Помпея. Приближенные Птолемея убедили царя, что разгромленный римский полководец будет лишь ненужной обузой и что в случае, если Птолемей все же примет Помпея, то победивший Цезарь непременно встанет на сторону Клеопатры. Поэтому решено было сообщить Помпею, что его готовы принять, а когда он прибудет, то убить его.
Как только Помпей сел в лодку, чтобы пристать к египетскому берегу, слуги египетского царя закололи его кинжалами. Через несколько дней в столицу Египта Александрию прибыл Цезарь, узнавший здесь о гибели соперника. Он имел в своем распоряжении 3200 легионеров и 800 всадников и попытался востребовать у египтян давний долг Риму в 10 миллионов денариев. Правительство Птолемея платить не собиралось, и Цезарь сделал ставку на Клеопатру.