Nello stesso tempo le truppe austriache, circa 1000 uomini al comando di Von Albertini, sono fra Ponte di Legno e Stadolina.
La sera dello stesso giorno Castellini incontra Caldesi a Incudine. Non è chiaro se quest'ultimo, che versa in cattive condizioni di salute, faccia però cenno dell'ordine di Cadolini di ripiegare in caso di attacco nemico.
Castellini ne trae la conclusione di dover invece resistere sulle posizioni precedentemente occupate di Vezza d'Oglio e di Grano.
Nella notte fra il 3 ed il 4 luglio gli austriaci si mettono in movimento verso Vezza su quattro colonne: la prima sulla strada di San Clemente, la seconda sulla strada di Carona, la terza sulla strada di San Sebastiano e la quarta sulla riva sinistra dell'Oglio.
Avvistate le truppe nemiche, il capitano Malagrida ordina, secondo gli ordini ricevuti da Caldesi, la ritirata su Incudine della compagnia e mezza schierate a Vezza ed a Grano.
Ciò non impedisce agli austriaci di sorprendere e fare prigionieri alcuni volontari che si erano attardati nei pressi del cimitero.
Nel ripiegamento Malagrida incontra una pattuglia di Bersaglieri in avanscoperta al comando del capitano Giulio Adamoli, che lo conduce a Davena da Castellini ed al quale riferisce di aver obbedito all'ordine di ripiegamento di Caldesi.
Convinto che si tratti di un malinteso, Castellini persuade Malagrida a tornare sui suoi passi e lancia al contrattacco anche l'intero 2° Battaglione Bersaglieri Volontari per rioccupare le posizioni abbandonate.
Nel frattempo però gli austriaci hanno interamente occupato Vezza, piazzando quattro cannoni sul Castello e trincerandosi dentro le case e dietro i muri degli orti.
Gli italiani avanzano su tre fronti: a monte verso Grano, a sua volta ormai occupato dagli austriaci, al centro verso Vezza ed a valle sulla riva destra dell'Oglio.
Giunti in prossimità delle prime case sono accolti da nutrite scariche di fucileria dal nemico bene appostato.
Il primo ufficiale a cadere è il sottotenente Achille Prada dei Volontari mentre accanto a lui è ferito, senza gravi conseguenze, il capitano Giulio Adamoli dei Bersaglieri.
Esaurite le munizioni, quest'ultimo ordina l'assalto alla baionetta ma l'intenso fuoco nemico rende impossibile l'avanzata e gli italiani sono costretti a retrocedere con gravi perdite.
Nel frattempo, nel tentativo audace di prendere i cannoni austriaci sul Castello, lo stesso maggiore Castellini si mette alla testa dei suoi Bersaglieri ma, colpito più volte, cade ferito mortalmente presso la Santella di San Carlo.
Alcuni volontari lo trasportano a braccia fino ad Incudine ma inutilmente.
Nonostante questo l'attacco italiano prosegue sotto la guida del capitano Antonio Oliva, che, in quanto ufficiale più anziano sostituisce Castellini al comando dei Bersaglieri.
In uno degli ultimi attacchi cade anche il capitano Antonio Frigerio, comandante della Terza Compagnia dei Bersaglieri, ferito e poi morto per dissanguamento durante il trasporto a valle.
Verso le ore otto del mattino però gli austriaci iniziano ad avanzare anche sulla riva sinistra dell'Oglio, dove non trovano alcuna resistenza, e quindi minacciano di accerchiamento l'intero schieramento italiano.
Pertanto, vista l'inutilità dei tentativi di riconquistare Vezza ed il pericolo incombente sull'ala destra, viene impartito l'ordine di ritirata su Incudine, che i volontari italiani compiono ordinatamente con gran parte dei feriti al seguito.
Il combattimento è terminato. Il bilancio parla di 20 morti italiani, 15 Bersaglieri, fra cui il comandante Nicostrato Castellini ed il capitano Antonio Frigerio, e 5 Volontari Garibaldini, fra cui il sottotenente Achille Prada. I morti austriaci sono invece 5.
I feriti italiani sono 70, 17 quelli austriaci.
Inoltre in mano austriaca restano 17 prigionieri, in gran parte feriti.
Malgrado l'insuccesso, Bersaglieri e Volontari si sono battuti bene e con coraggio, meritando l'elogio degli stessi avversari.
Al combattimento non prende invece parte il resto del 1° Battaglione Volontari, al comando di Caldesi, trincerato davanti ad Incudine secondo gli ordini ricevuti dal comandante del Reggimento, Cadolini.
Su ordine dello stesso Caldesi sono però sparati alcuni colpi di artiglieria da parte dei due cannoni schierati al Salto del Lupo, ma con scarsa efficacia.
Al termine della giornata del 4 luglio gli austriaci si spingono sino a Davena, sgomberata dagli italiani, ma poi si ritirano a Vezza e quindi al Passo del Tonale, portandosi appresso i loro caduti ed i prigionieri italiani in grado di muoversi.
I feriti italiani più gravi sono invece ricoverati nella Chiesa parrocchiale, curati dapprima dagli stessi austriaci e quindi lasciati alle cure della popolazione locale.
Si distinguono in questo il Sindaco Martino Pasolini, il medico condotto Antonio Bertoletti, il veterinario condotto Lorenzo Tedeschi, la Giunta Comunale, il clero.
Degna di particolare menzione l'opera prestata dalla signora Caterina Boniotti Ventura, come testimonia la sciarpa tricolore successivamente donatale dai reduci tridentini.
Per quanto riguarda i caduti italiani, sono sepolti con gli onori militari dagli austriaci nel Cimitero di Vezza, dove in parte ancora riposano nell'Ossario eretto nell'anno 1895.
Il 5 luglio i Volontari italiani, al comando diretto del tenente colonnello Cadolini, rioccupano Vezza d'Oglio e trasferiscono a Edolo i feriti e la salma del capitano Frigerio.
Il 15 luglio però tutte le unità dei Volontari si ritirano dall'Alta Valle Camonica, lasciando in loco solo la Guardia Nazionale e pochi Finanzieri e Carabinieri.
Questo consente agli austriaci di scendere nuovamente in valle sino a Edolo il 20 luglio e di nuovo sino a Vezza il 23 luglio, dove hanno luogo numerose requisizioni di beni, per poi ripiegare definitivamente oltre il Tonale.
E' opportuno sottolineare la grande prova di solidarietà della popolazione di Vezza d'Oglio nei confronti dei feriti e degli altri volontari italiani nonostante i gravi danni subiti per mano austriaca a seguito della requisizione di beni, mezzi di trasporto, bestiame e la perdita del raccolto.
La guerra termina il 12 agosto 1866 con la sconfitta dell'Austria, principalmente a seguito della battaglia di Sadowa persa contro l'esercito prussiano.
I soldati italiani fatti prigionieri a Vezza, trasferiti a Vienna e poi in Croazia, saranno rimpatriati a Udine a guerra finita.