秦惠文王九年(公元前316年),巴国和蜀国互相攻打,都来向秦国告急求救。秦惠文王想出兵攻打蜀国,但顾虑道路险峻难行,并恐怕韩国可能会前来侵犯,所以犹豫不决。
司马错与张仪在秦惠文王面前争论不休,张仪主张应先攻打韩国,司马错力排张仪之议,认为攻打韩国将导致诸侯联合对抗秦国,攻打蜀国则既可得其人力、物力以充实军备,还可占据有利地势顺水而下攻打楚国。秦惠文王采纳司马错的建议,决定出兵攻打蜀国。同年秋天,司马错与张仪、都尉墨等率军从石牛道出兵攻打蜀国,与蜀国军队在葭萌(今四川广元)交战,蜀王兵败逃到武阳(今四川彭山东)。同年十月,秦军灭亡蜀国 ,将蜀王贬号为蜀侯,而任命陈庄出任蜀国相国。秦国吞并蜀国以后,更加富庶和强盛而轻视周围各国。