Peru har insurgentgeneralen Caceres lidit ett grundligt nederlag.