Обычно считают, что надо покупать авиабилеты заранее, чтобы они получились дешевле. Однако на деле за несколько дней до вылета может случиться распродажа и вы в итоге купите билет дешевле. Мне кажется, наилучший вариант — это время от времени мониторить цены на билеты и покупать их тогда, когда цена покажется вам ниже, чем обычно. Вот самый удобный инструмент для этого, форма известного сервиса Aviasales:
Также я рекомендую подписаться на рассылки авиакомпаний и на мониторинг цен билетов по какому-то нужному вам направлению. Плюс иногда бывает существенно дешевле купить билет в другой город, а оттуда добираться уже автобусом.