宋恭帝德佑元年(1275)正月,因元军大举进攻,宋军的长江防线全线崩溃,朝廷下诏让各地组织兵马勤王。文天祥立即捐献家资充当军费,招募当地豪杰,组建了一支万余人的义军,开赴临安。宋朝廷委任文天祥知平江府,命令他发兵援救常州,旋即又命令他驰援独松关。由于元军攻势猛烈,江西义军虽英勇作战,但最终也未能挡住元军兵锋。
次年正月,元军兵临临安,文武官员都纷纷出逃。谢太后任命文天祥为右丞相兼枢密使,派他出城与伯颜谈判,企图与元军讲和。文天祥到了元军大营,却被伯颜扣留。谢太后见大势已去,只好献城纳土,向元军投降。
元军占领了临安,但两淮、江南、闽广等地还未被元军完全控制和占领。于是,伯颜企图诱降文天祥,利用他的声望来尽快收拾残局。文天祥宁死不屈,伯颜只好将他押解北方。行至镇江,文天祥冒险出逃,经过许多艰难险阻,于景炎元(1276)五月二十六日辗转到达福州,被宋端宗赵昺任命为右丞相。
文天祥对张世杰专制朝政极为不满,又与陈宜中意见不合,于是离开南宋行朝,以同都督的身分在南剑州(治今福建南平)开府,指挥抗元。不久,文天祥又先后转移到汀州(治今福建长汀)、漳州、龙岩、梅州等地,联络各地的抗元义军,坚持斗争。景炎二年(1277)夏,文天祥率军由梅州出兵,进攻江西,在雩都(今江西于都)获得大捷后,又以重兵进攻赣州,以偏师进攻吉州(治今江西吉安),陆续收复了许多州县。元江西宣慰使李恒在兴国县发动反攻,文天祥兵败,收容残部,退往循州(旧治在今广东龙川西)。
祥兴元年(1278)夏,文天祥得知南宋行朝移驻新会崖山,为摆脱艰难处境,便要求率军前往,与南宋行朝会合。由于张世杰坚决反对,文天祥只好作罢,率军退往潮阳县。同年冬,元军大举来攻,文天祥在率部向海丰撤退的途中遭到元将张弘范的攻击,兵败被俘。