La ciudad fue fundada a inicios de la Edad del Bronce, siendo posteriormente ocupada durante la Edad de Hierro por el pueblo celta de los vacceos, que la denominaron Ocalam. El asentamiento inicial se produjo en la almendra delimitada por el Castillo y la costanilla de San Ildefonso, un emplazamiento estratégico al tratarse de una meseta rocosa defendida por el río Duero, en la que se ubicó un castro.
El poblamiento se mantuvo durante el Imperio romano. De hecho, con frecuencia se la ha identificado con la importante mansio y civitas de «Ocelo Durii» (Ojo del Duero). Según algunos tal población correspondería en realidad con la actual Villalazán, doce kilómetros al este, también a orillas del Duero, y por la que transcurría la Vía de la Plata.
Durante la Edad Media, Zamora volvió a ser tomada y destruida por los musulmanes al mando del emir Mohamed y después reconquistada por los cristianos en el reinado del rey Alfonso II de Asturias, el Casto, siendo de nuevo fortificada. El rey Alfonso III de Asturias, el Magno la repobló con mozárabes toledanos en 893, rodeándola de murallas y dotándola incluso de palacios y baños, convirtiéndose, por su emplazamiento y características, en la ciudad fortaleza más importante de los reinos cristianos. La repoblación de la ciudad de Zamora fue descrita por Isa ibn Ahmad al-Razi de la siguiente forma: «dirigiose Alfonso hijo de Ordoño, rey de Galicia, a la ciudad de Zamora, la despoblada, y la construyó y la urbanizó, y la fortificó y pobló con cristianos, y restauró todos sus contornos. Sus constructores eran gente de Toledo, y sus defensas fueron erigidas a costa de un hombre agemí de entre ellos. Así, pues, desde aquel momento comenzó a florecer la ciudad, y sus poblados se fueron uniendo unos a otros, y las gentes de la frontera fueron a tomar sitio en ella«.
El periodo comprendido entre los siglos X y XIII es el de mayor relevancia de Zamora dentro del contexto hispánico. La batalla de Simancas (939) dio a Ramiro II de León el control de los valles del Duero y del Tormes, convirtiéndose la capital zamorana (por su posición y su ventajoso emplazamiento, en lo alto de una meseta rocosa al borde del río) en una de las principales plazas fuertes que aseguraban la frontera. Su importancia fue decayendo sin embargo a partir de la batalla de las Navas de Tolosa (1212), que abrió el sur peninsular a los reinos cristianos, perdiendo con ello Zamora su trascendencia estratégica.
Zamora fue una de las plazas más importantes del Reino de León, del que formó parte. Además inició la etapa de mayor esplendor político, económico y arquitectónico. El paulatino desplazamiento de la frontera hacia el sur, del Duero al Tormes, favoreció este progreso, sólo quebrado por las aceifas de Almanzor. Muhammad ibn ‘Abd-Allah ibn Abū ‘Āmir (en árabe محمد بن عبد أبو عامر ), llamado Al-Mansūr (المنصور) (españolizado Almanzor), el Victorioso, lanzó en 981 un primer ataque contra la ciudad, que fue arrasada. En 986 rompió hostilidades con el rey Bermudo II, atacando Coímbra al año siguiente (dejándola de tal manera que durante siete años estuvo desierta) y dirigiéndose contra el propio León en 988, destruyendo todo lo que encontraba a su paso. Bermudo se refugió en Zamora, pero nada pudo contener el avance enemigo. León, después de resistir cuatro días, fue asaltado, saqueado, incendiado y sus murallas destruidas, Zamora capituló y Bermudo hubo de huir a Galicia. En 997 Zamora volvió a sufrir la acción del musulmán, pues en su camino hacia Santiago de Compostela arrasó de nuevo la ciudad, además de León y Astorga.
«Zamora la bien cercada» la llamó Fernando I de León, el Magno. Este monarca la reconstruyó en 1055, la repobló con montañeses y amuralló nuevamente, para cedérsela luego a su hija doña Urraca. Su posición privilegiada la hizo objeto de disputa entre los divididos reinos cristianos. Durante uno de los cercos a la ciudad sucedió un hecho notable que se perpetuó en el romancero español: la muerte por sorpresa, a manos del noble zamorano Vellido Dolfos, del rey Sancho II cuando este intentaba tomar la ciudad gobernada por su hermana. La posibilidad de que el inductor hubiera sido el principal beneficiado (el rey Alfonso VI, quien había sido encarcelado por Sancho II, su hermano), es la que, según los cantares de gesta, habría provocado que uno de los nobles castellanos presentes en el asedio, Rodrigo Díaz de Vivar, el Cid, le hiciera jurar no haber participado en la muerte de su hermano (la jura de Santa Gadea, Burgos). Tanto el arrojo de Vellido como el atrevimiento de Rodrigo han pasado a ser tópicos literarios y hasta coloquiales, así como la bravura de la ciudad durante el asedio, inmortalizada en el dicho No se ganó Zamora en una hora. En el lugar en el que, según la tradición, fue asesinado el soberano Sancho II por Bellido Dolfos, se encuentra situado un tosco monumento rematado en cruz y denominado Cruz del Rey Don Sancho.