楚宣王二十八年,也就是公元前342年,时淮北、泗上之间仍有十几个小国,楚宣王率三十万楚军东进淮北,齐威王则率二十万齐军南下泗上,越王之侯也率二十万越军出广陵(扬州),北上淮北,就连宋君偃也率军十万东进徐州,四国军队为争夺淮北、泗上的千里膏腴之地而展开了激战,楚宣王审时度势,首先与越王之侯的二十万越军战于淮北,于江苏的淮安、盐城大败越军,越王率着败兵退回广陵。楚宣王随挥师北上,于徐州大败宋军、齐兵,夺得了徐州,宋君偃率着残兵败将逃回商丘。然后,楚军与齐军大战于枣庄、临沂,双方相持数月,互有胜负。最后,楚军集中优势兵力,于枣庄大败齐军,接着又在临沂打败齐军,齐军向东撤走,夺得了山东日照、江苏连云港等海岸地带。淮北、泗上争夺战以楚军全面胜利而告终,除了山东的几个小国外,淮北、泗上的十几个小国尽入楚国版图。
正当楚宣王与齐、越、宋三国军队大战淮北之时,卫鞅不顾楚秦姻亲联盟,竟率着二十万秦军,乘楚军主力东进,于蓝关兵分二路,一路东出洛南,一路东出商洛古道,二路秦军会合于商州,赶走商州西南面丹江一带的数百楚军,接着又挥师东出,夺取具有数千楚军把守的丹凤和少习关(武关),并派大军驻守商洛、丹凤和少习关。把丹江以北,少习以西,连同整条商洛古道并入秦国版图。楚宣王闻讯,随命十万楚军驻守淮北、徐州、泗上,率二十万楚军班师回荆州。楚宣王派使者质问秦孝公说:“楚、秦世代姻亲,推心置腹如兄弟,昔日我出兵帮助秦国打败三晋,并将洛南至灵宝七百里地让与你父献公,约定商州和商州古道乃楚、秦二国所有,共同经营管理。今你乘我率师东进,兴兵东出商洛,赶走我商州、丹凤、少习驻军,是何道理?莫非你想撕毁楚、秦世代姻亲联盟,与楚国交恶吗”?
秦孝公听后落泪地说:“这些都是卫鞅背着我干的,只怪我当初把二十万大军的兵权交给了他,而今悔之不及呀”!楚国使者随回到荆都禀报楚宣王,秦孝公见楚国使者一走,立即八百里快传卫鞅说:“你有大功于秦,本欲与你共同分享秦国,今楚宣王派使者前来,它日必兴师问罪,奈何。现在我将商州、洛南、丹凤七百里地赐给你,命你为侯,封你为商,你可自立,不必再回咸阳了”。卫鞅不知是理,随号商君,自立商国,并改姓名为商鞅,接着令军士大兴土木,建造了从商洛到商南的第一座规模宏大的城池商邑(在现丹凤县),阻断商洛到商南的商州古道,并增高加固少习关,以大军十万驻扎在商邑、少习,大军十万驻扎在商州、洛南,并招兵买马,扩军备战。楚宣王大怒,正想举兵讨伐卫鞅,前方快马来报,齐威王正聚集军队,南下泗上,魏惠文王举兵南下周口。楚宣王西伐卫鞅的事随暂时放下,令大将屈武(屈匄之父)率十万楚军驻守商南、浙川,然后移师十万于周口、阜阳,十万于徐州、淮北。魏、齐军队闻讯,随不敢南下。翌年,楚宣王重病,岁末死,在位三十年。临死前,乃念念不忘商州的楚地。
楚宣王死前,楚国疆土东至山东南部的临沂、徐州、淮北、盐城至广陵与越国接壤,北至河南周口、方、叶,西至洵阳、山阳和巴、黔。地阔四千余里,人口二千多万。楚宣王在位三十年,拓地淮北、泗上近千里,却丢失了禹州、古城、丹凤、少习关和商州古道数百里之地。楚宣王死后一年,秦孝公病死,太子惠文君立,是为秦惠文公,十三年后才开始称王。秦孝公死前,秦国疆土二千余里,人口五百万,拓地至关东的华阴和洛南以北至灵宝以及陕东南的商洛、丹凤千里之地,但商州、洛南与丹凤周长七百里地便成为卫鞅的私人封地。