The seven mile long Zion Canyon Road is the central feature at Zion National Park. You will almost certainly have need of lunch when visiting Zion Canyon.
Zion Lodge
There are only two places within Zion National Park for lunch. Both are located at Zion Lodge There is an overpriced full service restaurant on the second floor of Zion Lodge. Views from the window tables are impressive. Service is excellent.
The fast food joint at the far end of the Lodge has better food and better prices. No interior seating, but the benches scattered around the grounds of Zion Lodge make for scenic place to eat.
Oscar's Cafe
We sought out Oscar's after reading a review in the Salt Lake Tribune and enjoyed the recommended garlic burger, so on our next trip, we went back. Never again. After waiting 45 minutes and not even getting a menu, we left to never return.
Cafe Soleil
Our favorite for a long time, but maybe not today. Located just steps from the pedestrian entrance to Zion National Park, there is indoor seating and two al fresco seating areas, a large well shaded space in the rear overlooking the Virgin River and a few less likely to be full tables in the front. There were several reasons why we usually headed to Cafe Soleil for lunch. It was a cafeteria and service was pretty fast-- did you come to Zion National Park to sit in restaurant for an hour or more at mid-day or to see the scenery? The food was good. It is convenient to Zion National Park, just steps away from the park's shuttle bus and the visitor's center. There are grand views from the outside dining areas, but the main reason we lunched there so often was because they offered a Buffalo Burger.
If you have never eaten Buffalo, you should, and a Buffalo Burger is the second best way to start (Buffalo Chili is #1). Once you have eaten a Buffalo Burger, you would return to Cafe Soleil for more because Buffalo Burgers are better than Beef Burgers, way better. But on our last visit to Cafe Soleil, no Buffalo Burgers, and that makes the fast food joint with no seats at Zion Lodge the best place for lunch in Zion National Park.