Valentino Rossi won the Catalan GP after an excellent battle with Marc Marquez over the closing laps, as Jorge Lorenzo crashes out.