战国秦夏阳(今韩城)人,司马迁的八世祖,是个有卓见远虑之士。秦惠文王后九年(公元前316年),司马错与张仪,在伐蜀与伐韩的策略上争议。司马错主张伐蜀,他说:"欲富国者,务广其地;欲强兵者,务富其民;欲王者,务博其德。三资者备,而王随之矣。今王地小民贫,故臣愿先以事于易二夫蜀,西僻之国也,而戎翟之长也,有桀、纣之乱。以奉攻之,譬如使豺狼逐群羊,得其地足以广国,取其财足以富民缮兵,不伤众而彼已服焉。拔一国而天下不以为暴,利尽西海天下不以为贪,是我一举而名实附也,而又不禁暴止乱之名。"秦惠文王采纳了司马错的主张,使其伐蜀,取而守之。蜀归秦后,秦益强富厚。秦昭襄王六年(公元前301年),蜀侯反,司马错定蜀。
仕秦惠文王、悼武王、昭襄王三世。司马错伐蜀是秦统一中国之前的一个重大的军事举措,在秦史上是不可或缺的。商鞅变法为秦统一中国奠定了经济基础,司马错伐蜀则为秦统一中国打下军事基础,二者在某种意义上具有同等之功的。
秦惠文王九年(前316年)巴蜀相攻,秦惠文王欲趁机灭蜀,却因韩侵秦而举棋不定。张仪主张先攻韩,司马错力排张仪之议,认为伐韩将导致诸侯合纵对秦,伐蜀则既可得其人力物力以充实军备,又可占据有利地势顺水而下攻楚。这议为秦王采纳。同年秋,即与张仪、都尉墨等率军从石牛道伐蜀(参见秦灭巴蜀之战),与蜀王之师战于葭萌(今四川广元昭化镇),蜀王败逃至武阴(今彭山东),冬,灭蜀。继而又灭巴、苴。秦惠王十四年陈庄杀蜀侯,后归降。秦武王元年(前310年),因蜀相陈庄叛秦,司马错受命协助平定蜀乱,甘茂诛陈庄。秦昭王六年(前301年),蜀侯辉反,司马错平叛,并诛郎中令等27人,平定蜀中。昭王十六年,司马错担任客卿,受命攻魏,取轵(今河南济原南),攻韩,取邓(今孟县西)。十八年,司马错与白起等又攻取魏国六十一座城邑。秦昭王二十七年(前280年),率陇西兵及巴蜀兵十万人,从蜀地沿江而下,攻楚黔中(今湖南西部及贵州东北部)。