Barcelona move 15 points clear at the top of La Liga with the win but went behind in the first half after a 42nd minute header from Alberto Botia.
Barcelona failed to impress for most of the opening stages but still came close to scoring on two occasions as Dani Alves saw a shot deflect over before Messi had a low shot well saved by Beto.
Tito Vilanova's side went in a goal down at the break but David Villa equalised seven minutes after the restart when David Villa sent a thumping header into the back of the net from Dani Alves's cross.
Messi turned in Cristian Tello's cross on the hour mark to fire Barcelona into the lead and the home side held on for the win despite Sevilla's best artempts.
Ivan Rakitic almost drew the visitors level when he sliced wide from inside the box before Alvaro Negredo's wonderful chip fell just over the crossbar but in the end Barcelona picked up three points to move them ever closer to the Spanish title.