Airlines typically make multiple trips per day on any route, which lets them play with pricing a lot more. It's pretty rare for there to be only one round-trip flight per day -- I suspect that upwards of 4x daily round-trips is more typical. Most of Amtrak's network is restricted to one train per day per direction (a few are only 3-4 times per week). The higher number of flights per day allows airlines to much more effectively use dynamic pricing -- the average cost per passenger on a route across the entire day is probably on par with or higher than Amtrak charges, but Amtrak by definition has to be pricing things closer to the daily average. Comparing the lowest airline price for the day to what Amtrak is charging isn't entirely fair, though that's certainly the way the market is set up at the moment.
The larger number of daily flights also lets airlines play around with having some expensive routes and other cheap ones. The MSP to Chicago market is highly competitive, with multiple airlines competing to drive prices down. But there are other links feeding into these airports that are much more expensive. A round-trip for Chicago to Rochester, MN for your March 6th - March 12th dates is showing up as at least $334 for me on Orbitz right now. Chicago to La Crosse (which is on the Empire Builder route), $400.
Airlines often like to pair these more expensive flights with cheaper flights on trunk routes -- balancing things out behind the scenes, the average revenue per passenger for Minneapolis to Chicago is significantly bumped up, while the more expensive connecting flight has lower revenue per passenger than what we get by looking up the price for the individual link. They also have much more flexibility in adding and removing flights to account for seasonality or just the weekly cycle of travel.
If passenger trains had a denser network of routes and had better frequency of service, it would be easier to find cheaper fares, though they might also play similar games that the airlines do with trunk and connecting routes.
One issue I see with airlines is that the average travel distance keeps drifting upward year over year. I'm not entirely sure if this is because people are really going longer distances or if it's just a side-effect of more hub-based operations -- probably both. I'm not sure what the best way is to get this info anymore, but based on the trend back in 2004, the
average flight stage length was about 700 miles, and it's probably up around 800 now.
That strikes me as really strange, since in my mind's eye, the distances people want to go probably follows something more like a
Pareto distribution, with short trips being very common and the frequency of trips dropping off quickly as the distance gets longer. Airlines seem to be chasing the long end of the tail, even though there are much meatier opportunities at shorter distances.
This may be driven by the fact that airliners are very expensive to purchase. I wrote
this article last year noting that airliners literally cost 10x as much per seat as trains do. There's not much reason for the operating costs to be spectacularly different, although I suspect Amtrak overstaffs their trains.
The Empire Builder is basically a rolling hotel, and there's some cost from that even for the coach passengers. The average number of passengers onboard the Empire Builder isn't all that high considering how big the train is. Doing some back-calculating, I estimated that in 2014, the Empire Builder averaged about 170 passengers onboard at any time (though this is across the entire year and the whole route). A typical double-decker Superliner in coach configuration has about 90 seats, so you could basically cram everyone into two cars -- but the standard consist is 11 or 12 cars (including a baggage car, sleeper cars, a diner car, a lounge/cafe car, and the coaches), not to mention two or three locomotives.
Anyway, it would be pretty easy to imagine a cheaper, more efficient train if we could get something running just on the Twin Cities - Chicago corridor and doesn't need to have sleepers or the deeply-pitched seats in the coach section for people traveling overnight. Airlines try to cram as many people in as they can. Amtrak could do a lot better if they fit more people per car and ran shorter trains, though there's certainly a limit before the seating is too tight and just as unpleasant as an airline.