Carnival (CCL) swung to a first-quarter loss on Tuesday but said bookings are accelerating from last year as confident consumers buy vacations far in advance.

The Miami-based cruise operator reported a net loss of $15 million, or 2 cents a share, compared with a year-earlier profit of $37 million, or 5 cents a share.

This comes as the cruise industry, from Carnival to rival Royal Caribbean (RCL), struggles to recover from a wave of recent on-board illnesses, power outages and fires that have forced cruise ships to return to port ahead of schedule, leaving others stranded at sea for days. 

Excluding one-time items, Carnival said it earned break-even earnings per share, better than the eight-cent loss forecasted by analysts in a Thomson Reuters poll.

Revenue for the three-month period was $3.59 billion, flat from 2013 and slightly above the Street’s view of $3.56 billion.

Carnival CEO Arnold Donald attributed the better-than-expected results to stronger-than-anticipated ticket sales for its flagship brand and continental European brands. The company also trimmed expenses.

"Many guests are booking further in advance, which increases visibility and builds confidence that yield comparisons will turn positive in the second half of 2014,” Douglas said.

Since January, Carnival said booking volumes have been running well ahead of last year at lower prices – up almost 20% globally and surpassing last year’s cumulative advance booking levels.

However, the company still expects full-year net revenue yields to be down slightly compared with the prior year due to an expected rise in cruise costs later this year.

It sees fiscal 2014 earnings in the range of $1.50 to $1.70 compared with last year’s $1.58 a share. The consensus is calling for slightly stronger earnings of $1.72.

For the second quarter, Carnival sees non-GAAP earnings ranging from a two-cent loss to a two-cent profit, down from a profit of seven cents a year ago. Analysts on average are projecting seven cents again this year.

Shares of Carnival fell 4% to $38.40 in early trade.  

Follow Jennifer Booton on Twitter at @Jbooton