La decima battaglia dell'Isonzo fu combattuta tra il 12 maggio e il 5 giugno 1917.
Gli Italiani potevano contare su 430 battaglioni e 3.800 pezzi di artiglieria, l'Austria-Ungheria su 210 battaglioni e 1.400 pezzi di artiglieria. Dopo 2 giorni e mezzo di bombardamenti a tappeto sull'intera linea del fronte da Tolmino fino al Mare Adriatico e dopo un attacco nei pressi di Gorizia, il fronte austro-ungarico venne rotto nella periferia meridionale della città. Gli Italiani riuscirono a conquistare temporaneamente il villaggio di Jamiano, oltre a diverse alture del Carso monfalconese, ma vennero respinti da un contrattacco austriaco partito dalle alture del monte Ermada. Tra Monte Santo e Zagora, a nord di Gorizia, riuscirono a passare l'Isonzo, a costruire tempestivamente una testa di ponte e a difenderla.
La nuova offensiva venne affidata alla 3ª Armata e ad una grande unità di recente costituzione: il Comando della Zona di Gorizia risultante dall'unione dei Corpi d'armata II (zona di Plava), VI (dal Monte Santo al bosco Panovizza) ed VIII (dal Panovizza alla Vertoibizza), con a capo il generale Capello. Il piano d'operazioni prevedeva tre fasi successive: nella prima, un bombardamento generale e prolungato, su tutto il fronte da Tolmino al mare, doveva disorientare gli austriaci ed impedirgli il gioco delle riserve tra il settore carsico e quello goriziano; nella seconda, il Comando doveva attacare la linea difensiva austriaca sull’antemurale carsico, tra Plava e Gorizia, con le successive alture del Monte Cucco di Plava (Kuk), del Monte Vòdice (Vodice), del Monte Santo e del Monte San Gabriele, nonché del sistema collinoso a ridosso di Gorizia; per favorire tale attacco era previsto un contemporaneo diversivo sull’ala sinistra, passando l'Isonzo tra Loga e Bòdres (Bodrež) per costituirvi una testa di ponte. Nella terza fase, infine, sarebbero passate all’attacco le truppe della 3ª Armata: X Corpo d’armata, dal Vipacco a Castagnevizza, XIII, da Castagnevizza a quota 208 sud, presso Bonetti di Doberdò, e VII, da tale quota al mare.
All’alba del 12 maggio del 1917 le artiglierie italiane aprirono il fuoco su tutto il fronte, continuandolo ininterrottamente per due giorni; il mezzogiorno del 14 maggio le fanterie italiane iniziarono l’avanzata sia nella zona di Plava sia in quella di Gorizia. Di primo balzo venne conquistata dalla Brigata Udine la quota 383 (Prižnica) (poi ridenominata tra le due guerre mondiali Poggio Montanari, in memoria del gen. Carlo Montanari), mentre la Brigata Firenze riuscì a raggiungere lo sperone di quota 535 presso il Monte Cucco di Plava e la Avellino, superato lo sbarramento di Sagora (Zagora), occupava parzialmente i fortini di Zagomila, che guadavano la strada del Vòdice. Reparti della Brigata Campobasso, risalite le pendici del Monte Santo, riuscirono ad occuparne la vetta (su cui ormai vi erano solo le rovine del convento) ma a seguito di un contrattacco austriaco nella notte, non venendo sostenute da rinforzi, l'indomani all'alba vennero costrette a ripiegare. A nord-est di Gorizia furono occupate dagli italiani, con aspra lotta, la collina di quota 126 presso l'attuale tiro a segno sopra Grassigna (Grčna) e la quota 174 presso di Tivoli, ma non poterono essere mantenute. Il giorno seguente, le truppe del II Corpo (ossia il generale Pietro Badoglio) seppur contrastate da un'accanita resistenza austriaca, si insediarono definitivamente sulla vetta del Cucco di Plava e sulla sella del Vòdice. Nella notte del 15 maggio reparti della 47a Divisione, forzato il passaggio dell'Isonzo al saliente di Loga, passarono sull'altra sponda costruendovi una testa di ponte e catturandovi quattrocento prigionieri. Nei giorni dal 15 al 21 maggio la lotta proseguì in modo molto accanito.
Gli austriaci contrattaccarono ovunque con grande energia; gli italiani riuscirono comunque e ribatterli e a tenere il Vòdice, con la 53a (gen. Gonzaga) nonché ad allargarsi attorno a Plava con l'occupazione della località di Glòbina (Globna) e Pàglievo (Paljevo); la testa di ponte di Bòdres, avendo adempiuto al proprio compito, venne ritirata la notte del 19 maggio. Il 21 maggio, il Comando Supremo ordinò alla III Armata di iniziare la terza fase dell’offensiva, sull'altopiano carsico che fu iniziata alle ore 16.00 del 23 maggio. Sulla sinistra, il XI Corpo s'impegnava contro le alture ad est del Monte Lupo (Volkovnjak), tenacemente contrastato al centro e sulla destra; il XIII Corpo e il VII, superarono la prima linea austriaca e dilagando a nord la strada tra Castagnevizza e Boscomalo (Hudi Log), aggirarono quest’ultima località, oltrepassarono Lucati (Lukatic) e s'impadronirono di Iamiàno. Nella zona di Monfalcone vennero occupate dagli italiani le quote 92, 77 (Sablici), 58 (Moschenizze), i Bagni ad oriente delle allora officine Adria (presso l'attuale via Timavo) e l'altura di quota 21 (Sant'Antonio, presso le Terme Romane).
La mattina seguente ci furono combattimenti nel saliente di Boscomalo, ove gli austriaci seguitavano ad opporre un'ostinata resistenza; la destra italiana del fronte nel frattempo passando attraverso il Flondar, ed attraversando la linea nemica il 25 maggio, si spinse fino alle pendici dell'Ermada, portando alcuni suoi elementi fino a San Giovanni e Medeazza, catturando oltre 2000 prigionieri. Nel medesimo giorno il saliente di Boscomalo venne anch'esso espugnato dagli italiani, che poterono ottenere qualche vantaggio nel centro del fronte nei pressi di Castagnevizza, che venne raggiunta e poi oltrepassata dalla 4a Divisione il 26 maggio, ma subito persa grazie a una potente controffensiva austriaca di artiglieria. Nella zona tra Castagnevizza e Iamiàno, tra il 26 e il 27 maggio, sanguinosi attacchi e contrattacchi si chiudevano con qualche vantaggio di terreno per le fanterie del XIII Corpo; il VII italiano avanzò sulle alture a ovest di Medeazza e raggiunse lentamente le foci del Timavo. Il 28 maggio, la Brigata Toscana espugnò la quota 28 (Bràtina) a sud del Timavo, tenendola però per poco tempo. Il 29 maggio seguirono piccole azioni di rettifica della linea del fronte.
Ai primi di giugno gli austriaci risposero con un potente contrattacco sull'altopiano carsico; grazie a dei rinforzi fatti pervenire in zona essi già dalla sera del 3 giugno contrattaccarono sulla linea Fàiti - Castagnevizza; nel settore di Castagnevizza la 4a Divisione italiana riuscì a contenere l’attacco, ma nel settore del Fàiti l'attacco austriaco andò a buon fine, ma poi le posizioni vennero riprese dalle Brigate Tevere e Massa Carrara. All'alba del 4 giugno gli austriaci intensificarono il loro sforzi sul resto del fronte fino al mare; se nella parte centrale del fronte il XIII Corpo italiano (gen. Diaz), dopo aver sostituito il 2 giugno il XIII Corpo e la 61a Divisione, riuscì a mantenere le posizioni di Versici (Vršič) e Iamiàno, nella parte destra del fronte gli austriaci sommersero le linee della 20a Divisione italiana raggiunsero a sorpresa i due tunnel (tra il Dosso Giulio e San Giovanni) della ferrovia Trieste – Monfalcone, impadronendosene e catturando numerosi reparti italiani ivi ricoverati, causando così il ripiegamento italiano sulle posizioni di partenza; fu così che rimasero saldamente nelle mani austriache Castagnevizza, l'Ermada e Duino.
Fu così che i progressi italiani compiuti con sanguinose giornate di battaglia ed ingenti perdite vennero in poche ore annullati. L'unico vantaggio rimasto agli italiani fu il mantenimento del costone Cucco di Plava - Vòdice, dominante sia sull'Isonzo sia sull'altopiano della Bainsizza, ma in parte vanificato dalla mancata conquista del Monte Santo che avrebbe reso loro più sicura l'occupazione di Gorizia.
Gli italiani comunque avevano conservarono q. 363, lungo la dorsale Kuk-Vodice, la regione Fornaza e la linea di Flondar.
Le perdite furono di 13.524 caduti, 73.898 feriti, 24.472 dispersi.