W wyborach samorządowych w 1998 bezskutecznie ubiegał się o mandat radnego Kluczborka z listy Unii Wolności. Został następnie działaczem Platformy Obywatelskiej. W latach 2006–2007 zasiadał w Sejmiku Województwa Opolskiego. W wyborach parlamentarnych w 2007 został wybrany na posła kadencji. Startował w okręgu opolskim, uzyskując 6301 głosów. W wyborach w 2011 z powodzeniem ubiegał się o reelekcję, otrzymując 9167 głosów. 12 listopada 2013 został wybrany na urząd marszałka opolskiego, w związku z czym wygasł jego mandat poselskiPostanowienie Marszałka Sejmu Rzeczypospolitej Polskiej z dnia 18 listopada 2013 r. w sprawie stwierdzenia wygaśnięcia mandatu posła Andrzeja Buły ()..
W wyborach w 2014 uzyskał ponownie mandat radnego sejmiku. 28 listopada tego samego roku po raz drugi objął stanowisko marszałka. W wyborach w 2018 kolejny raz wybrany na radnego województwa. 21 listopada tego samego roku ponownie został marszałkiem województwa opolskiego. Bez powodzenia kandydował w wyborach do Parlamentu Europejskiego w 2019.