Forse quel controllo ti lascai passare tutto.

Prova a metterci return false; dove e` sbagliato e a chiamare la funzine con return nomefunz(); dentro l'attributo dell'evento.
codice:
function controlla(ff) {
  var cap1 = ff.txt_CAP.value;
  if (cap1 == '') {
    alert("C.A.P. obbligatorio");
    ff.txt_CAP.focus();
    return false;
  } else if (!cap1.match(/^[0-9]{5}$/) {
    alert("il C.A.P. deve essere di 5 caratteri numerici");
    ff.txt_CAP.focus();
    return false;
  }
  var ema1 = ff.txt_Email.value;
  if (ema1 == '') {
    alert("Email obbligatoria");
    ff.txt_Email.focus();
    return false;
  } else if(!ema1.match(/^.{2,}\@.{2,}(\..{2,})+?$/) {
    alert("controlla sintassi Email");
    ff.txt_Email.focus();
    return false;
  }
  var tel1 = ff.txt_Tel.value;
  if (tel1 == '') {
    alert("Telefono obbligatorio");
    ff.txt_Tel.focus();
    return false;
  } else if(!tel1.match(/^\+??[0-9 ]$/) {
    alert("controlla sintassi Telefono");
    ff.txt_Tel.focus();
    return false;
  }
  return true;
}
Devi chiamare la funzione con:
<form ... onsubmit="return controlla(this);">

Attenzione che ci soino vari backslash. Se non li vedi fai un quote del messaggio prima di fare il copia-incolla.