Отпуск is usually many (5-20-100) consecutive days off, that you deserve working during the year. If you want to travel far, then you would likely need an отпуск for that.
Выходной is a day off just because people need a rest after a few days of strenuous work. Usually выходные are Saturndays and Sundays, but many people have different schedule, and they can have выходной each third day for example. In other words, выходной is a day when you don't have to go to work, even if you're not ill and not on vacation. One rarely has more than 1-2 выходных in a row.

Праздник(праздничный день) is the day of celebration. If the celebration is meant for all, then this day is всеобщий выходной (most people don't go to work).
If it is your birthday or wedding, then it might be not выходной. For example, you go to work and are celebrating after work. In this case, your праздник happens after work.
In Russia, there is period, when several праздники coalesce into continuous 8-11 days of rest. This period is commonly called "новогодние каникулы" (jokingly?) By its length the period is more like an extra отпуск!