Karier klub Badu dimulai di klub lokal Berlin F.C. sebelum kemudian bergabung dengan Berekum Arsenal. Pada tanggal 21 Mei 2007, Badu diumumkan sebagai anggota Ghana Premier League All Star Team. Pada tanggal 11 Juli 2008, Badu meninggalkan Berekum Arsenal dan menandatangani kontrak pinjaman satu tahun dengan Asante Kotoko. Ia juga mengikuti uji coba di Inggris dengan Middlesbrough pada Agustus 2008 dan Wolverhampton Wanderers tiga bulan kemudian. Pada tanggal 16 April 2009, Badu menandatangani kontrak pinjaman enam bulan dengan Recreativo de Huelva, yang dipinjam dari Berlin FC. Kontraknya dengan klub Spanyol tersebut kemudian berakhir pada September 2009 dan ia kembali ke Asante Kotoko.
Pada November 2009, Badu dikonfirmasi akan bergabung dengan klub Serie A Italia, Udinese Calcio, pada bulan Januari 2010. Ia kemudian resmi bergabung dengan Udinese pada tanggal 28 Januari 2010. Badu menjadi pemain cadangan reguler sebelum akhirnya menjadi pemain inti pada musim 2011-2012, menggantikan Gökhan Inler. Pada Agustus 2017, ia dipinjamkan ke klub Süper Lig Turki, Bursaspor, selama musim 2017-2018. Setelah mengalami cedera selama masa peminjaman, Badu kembali bermain untuk Udinese pada Maret 2019 setelah absen selama 11 bulan.
Pada tanggal 13 Juli 2019, Badu bergabung dengan Hellas Verona dengan status pinjaman dan kewajiban untuk dibeli. Namun, ia mengalami masalah kesehatan pada Agustus 2019 akibat pembekuan darah di paru-paru. Setelah mendapatkan izin untuk bermain pada bulan Desember 2019, ia tampil dalam 10 pertandingan selama masa peminjamannya di klub tersebut. Setelah musim 2019-2020 berakhir, Hellas Verona mengaktifkan opsi untuk membeli Badu dan ia resmi bergabung dengan klub tersebut dengan kontrak selama dua tahun. Namun, ia tidak masuk dalam skuad Serie A Hellas Verona untuk musim 2020-2021. Pada tanggal 2 Januari 2021, Badu mengumumkan bahwa ia mengakhiri kontraknya dengan Verona dan pensiun dari bermain sepak bola.
Pada bulan Juli 2022, setelah 13 tahun bermain di Ghana Premier League, Badu kembali ke liga tersebut dan bergabung dengan klub Accra Great Olympics sebagai pemain bebas. Ia menandatangani kontrak selama satu tahun dengan klub tersebut. Badu membuat debutnya pada tanggal 17 Agustus 2022 dalam pertandingan melawan Bechem United, yang berakhir dengan skor 5-4 melalui adu penalti setelah berakhir imbang tanpa gol pada waktu normal dalam turnamen GHALCA G6 2022. Ia tampil dalam semua pertandingan saat Olympics berhasil memenangkan GHALCA G6 setelah mengalahkan Bechem United dengan skor 2-0 dalam pertandingan final. Pada tanggal 9 September 2022, sehari sebelum dimulainya liga, ia secara resmi diperkenalkan oleh klub. Setelah masa bakti yang luar biasa selama lima bulan, di mana ia bermain dalam 11 pertandingan liga dan dua kali meraih penghargaan Man of the Match, Badu mengucapkan selamat tinggal kepada Olympics.
Di level internasional, Badu telah mewakili Ghana di tingkat U-20, U-23, dan tim senior. Ia pertama kali dipanggil untuk tim nasional Ghana pada tanggal 22 Mei 2008. Penampilan internasional senior pertamanya terjadi pada tanggal 8 Juni 2008 dalam pertandingan melawan Lesotho, dan gol internasional pertamanya dicetak pada bulan Juni 2011 dalam pertandingan melawan Kongo.