Messi scored his first international hat-trick, while Swiss young gun Xherdan Shaqiri grabbed the home side's goal, in the match in Bern on Wednesday.

The FIFA World Player of the Year got his first in the 20th minute when he linked with Sergio Aguero who returned the ball to his captain with a neat backheel and Messi scored.

Shaqiri tied the game four minutes into the second half but Messi claimed victory when he dribbled through the Swiss defence and chipped the ball over goalkeeper Marco Wolfli in the 88th minute.

The Barcelona star then completed his hat-trick with a penalty in injury time.

In Croatia, the match was tied at half-time after Jonas Olsson's own goal had cancelled out Zlatan Ibrahimovic's early penalty, before a second-half double from Sunderland's Sebastian Larsson wrapped up the win for Sweden against their fellow Euro 2012 qualifiers.

In another clash involving two teams that will be at the continental championships in June, Russia stunned Denmark 2-0 in Copenhagen thanks to a goal and an assist from Andrei Arshavin.

The visitors hit the front in just the fourth minute when Arshavin set up Roman Shirokov and then doubled their lead just before half-time thanks to a powerful shot from Arshavin.

The two hosts of this year's European Championships had promising results, with Ukraine winning 3-2 away from home against Israel and Poland earning a 0-0 draw against Portugal.

Of the other Euro 2012 qualifiers in action, Greece were held 1-1 at home by Belgium, while Republic of Ireland and Czech Republic also drew 1-1 in Dublin.

It was a full day of international action around the world, with Austria defeating Finland 3-1, Slovakia overcoming Turkey 2-1, Uruguay drawing 1-1 in Romania, Cyprus holding Serbia to a 0-0 draw, Norway thumping Northern Ireland 3-0, Slovenia tying Scotland 1-1 and Costa Rica beating Wales 1-0.

Elsewhere, Jamaica beat New Zealand 3-2, Georgia won 2-1 at home over Albania, Armenia defeated Canada 3-1, Hungary versus Bulgaria finished 1-1, Latvia and Kazakhstan ended 0-0, and Moldova drew 0-0 with Belarus.

And in other results on Wednesday, Luxembourg beat Macedonia 2-1, Malta won 2-1 over Liechtenstein, Montenegro defeated Iceland 2-1, Peru drew 1-1 in Tunisia and South Africa was held 0-0 at home by Senegal.