Ajax had an injury crisis of its own, with strikers Siem de Jong and Kolbeinn Sigthorsson out injured along with Bojan Krkic. But their replacements more than made up for the absences in a pulsating first half.
Barcelona clearly missed Messi, who scored a hat-trick in his team's 4-0 demolition of Ajax in September.
Instead it was the unheralded Ajax attackers who found the net in the first half.
South Africa midfielder Serero unmarked in the middle of the penalty area rewarded Ajax for its early pressure by calmly slotting home a cross from the right by Ricardo van Rhijn in the 19th minute for his first Champions League goal.
Hoesen doubled the lead three minutes before halftime when he collected the rebound from a powerful Viktor Fischer drive, rounded Carles Puyol and steered the ball into the net off Gerard Pique.
"You can only dream about this," Hoesen said. "I had a good feeling before the match. They are probably the best team in the world and to be able to score the winning goal is amazing."
Ajax's quick attacking and committed defending meant Barcelona rarely threatened in the first half, but when it did, it was Neymar who came closest.
The Brazilian nearly equalized in the 25th when he left Veltman flat-footed in the middle of Ajax's defense but saw his shot roll just wide of Jasper Cillessen's far post. In the dying seconds of the half, Neymar just failed to get a touch on a Xavi Hernandez free kick.
It was Van Rhijn who had provided the cross for Ajax's opener who gave away the initiative when he played a loose back pass that was pounced on by Neymar and Veltman could only bring down the Brazilian leading to Xavi's 49th-minute penalty.
With a one-man advantage, Barcelona laid siege to Ajax's goal for the rest of the match, but could find no way through the wall of Ajax's defenders.
Tuesday's match at Amsterdam Arena featured a clash of two four-time European Champions, but Ajax's last title dates back to 1995. Barcelona has won Europe's top club title three times since 2006.
An Ajax fan was taken away by ambulance after falling into a dry moat surrounding the field late in the first half. Ajax's official Twitter feed reported that the man was hospitalized with serious injuries.