Marc Marquez took his second consecutive 125cc win after winning a ferocious late battle with Pol Espargaro at Silverstone.