Русские полки и дружины стали окружать город. Когда кольцо вокруг Ошеля замкнулось, Святослав отправил вперед воинов с секирами и факелами, чтобы они разрушали и поджигали вражеские укрепления. Следом за ними для прикрытия выдвинулись лучники, а затем подошли копейщики, чтобы отразить вероятную атаку конницы серебряных болгар. Тысячи стрел летели со стен, однако, несмотря на потери, русские достигли укреплений и принялись рубить деревянный частокол. Пока часть ратников пыталась разрушить стену, другие прикрывали своих товарищей щитами от летевших сверху стрел и копий. В одном месте русским удалось подсечь частокол, и гридни ринулись в пролом. Навстречу бросились болгары, и завязалась рукопашная схватка. Однако воины Святослава исхитрились поджечь стену, и черный дым пополз вдоль городских укреплений.
Солнце палило нещадно, защитники Ошеля изнывали от зноя и жажды, поскольку запасы воды в городе оказались незначительны. Между тем пламя охватило часть деревянной стены, подул сильный ветер и понес клубы густого, черного дыма прямо на русские полки. От нестерпимой жары ратники и дружинники стали пятиться от крепостных валов Ошеля. Полки отходили к лесу, где воины в изнеможении падали на траву и сразу же засыпали. Многие потянулись за водой к Волге.
Штурм Ошеля русскими полками
Миниатюра Лицевого летописного свода XVI века
Святослав быстро сообразил, чем может обернуться этот спонтанный отдых, поэтому распорядился поднимать войска и вести их вокруг города. Князь решил нанести главный удар с противоположной стороны, чтобы ветер дул русским в спину. Воинство обтекало валы Ошеля и сосредотачивалось напротив городских ворот, откуда с утра вела атаки на Ошель муромская дружина. Когда все было готово к приступу, князь Святослав выехал перед строем и обратился к ратникам и дружинникам с краткой речью: «
Натиск русских был неудержим. Воины изрубили частокол, вышибли ворота и прорвались в Ошель. Спешенные всадники тяжелой конницы бились храбро и умело, но не могли остановить напор русских. Часть болгар обратились в бегство, другие засели в укрепленной цитадели. Захлопнув ворота внутренней крепости, болгарские воины перевели дух. Между тем ветер усилился и постепенно перешел в ураган. И тогда Святослав, не желая терять своих воинов при штурме цитадели, распорядился поджечь Ошель. Полыхнуло так, что страшно стало как осажденным, так и осаждавшим. Огонь моментально охватил весь город, крики гибнувших людей заглушили даже шум бури.
Вырваться из гибнущего города удалось только болгарскому военачальнику, который во главе отряда конницы кинулся на прорыв и, положив практически всех бойцов, с горсткой всадников ускакал в лес. Выбегавших из города вражеских пехотинцев, а также все мужское население конные гридни изрубили мечами, а женщин и детей захватили в плен. Немало болгарских воинов лично убили своих близких, а затем покончили с собой. Много народу погибло в бушующем пламени, причем были это не только болгары, но и русские, в поисках добычи разбежавшиеся по городу и не сумевшие вовремя выбраться с охваченных огнем улиц.
Князь Святослав, с почерневшим от копоти лицом, в окружении князей и воевод, гарцевал на коне недалеко от городских ворот и наблюдал за тем, как Ошель превращается в дым и пепел. Было 15 июня 1220 года.
После этой победы Святослав отвел свою рать на берег Волги и дал измученным воинам недолгий отдых. Но отдохнуть не получилось. Внезапно пошел сильный дождь, затем налетела буря и едва не уничтожила ладейный флот. На следующий день Святослав переправил свои войска на остров посреди Волги и оставался там целые сутки. Посовещавшись с муромскими князьями и воеводами, он пришел к выводу, что атаковать Великий Булгар нет никакого смысла. В Ошеле русские взяли огромную добычу и большой полон, ладьи и насады были забиты трофейным добром и пленниками по самые борта. К тому же в окрестностях бывшей столицы серебряные болгары собрали большое войско. Поэтому Святослав решил не искушать судьбу, а возвращаться домой.