至正二十一年,八月初五,光攻下乐平州,擒侯邦佐、万户彭寿等六十多人。十二日,光等与朱元璋征安庆,廿四日在湖口遇陈友谅。光与部将飚行电疾,兵从天降,友谅趁夜弃城逃走。光率兵攻下黄梅、瑞昌等处。后助攻建昌,继续守鄱阳。
至正二十三年,二月,吴宏、吴毅等人与光之间配合不好,都昌盗贼江爵诱张定边、蒋必胜乘隙而攻,光等兵败饶州。七月十九日,鄱阳湖大战,后围武昌,光都在队伍中,多有战功。至正二十四年,以军功转从三品振武卫指挥同知,武官散阶为怀远将军,不久又升为正三品鹰扬卫指挥使,后从大将军徐达平淮东江东,擒张士诚;北征中原,平山东、取汴梁、克洛陜、下潼关。
洪武元年,五月初一,冯宗异请求增兵守潼关,徐达调于光与金兴旺镇守。十月初七,光与都督佥事郭子兴等抵御河中来犯元军。两兵刚相接,光持矟大呼,冲入阵中,元军溃败逃散,光等乘胜追击数十里,大败元军;十一月廿一日,光从都督同知康茂才攻下河中。
洪武二年,四月十一日,徐达派于光与郭子兴守巩昌。元将王保保屡引兵来犯,都被于光等击退。十二月廿八日,保保得知徐达回建康,于是兵围兰州。傍晚,守将张温率兵出击,挫其锋芒,后退回城中,坚守以待援兵。光自巩昌率兵来援,行至兰州马兰滩遇保保兵,因寡不敌众而战败被俘。保保捆绑光至兰州城下,让他叫张温等投降。光高声大喊:“我不幸被执,公等坚守,徐总兵将大军行至矣。”元军被激怒,砍掉其头颅和双手,光于是被害!享年四十五。明太祖悼念,赐光金头银手,凑成全躯,给光亲属布帛,命他们办理丧事;派祠部官以少牢之礼祭祀,后奉奉其神主配享鸡龙山功臣庙;副将刘彦辅护榇归故乡,洪武三年,三月十六日,葬于祖山神岭之东楼下山。