Одерматт народився і провів рані роки у Люцерні, а коли йому було дев'ять років, його сім'я переїхала з ним до Базеля. Там Карл почав грати у футбол за місцеву команду «Конкордія», в якій провів два сезони у третьому швейцарському дивізіоні.
У 1962 році Одерматт перейшов до найсильнішого клубу міста, «Базеля» і своєму першому ж сезоні в команді він виграв Кубок Швейцарії під керівництвом легендарного Їржі Соботки. Після уходу чехословацького спеціаліста у 1965 році граючим тренером команди став німець Гельмут Бентгаус, при якому «Базель» став одним з найкращих клубів країни. Під керівництвом Бентгауса Одерматт з командою п'ять разів вигравав чемпіонат та двічі Кубок Швейцарії, а 1973 року був визнаний найкращим футболістом країни[en][2]. Загалом Карл відіграв за команду з Базеля тринадцять сезонів своєї ігрової кар'єри. Більшість часу, проведеного у складі «Базеля», був основним гравцем команди.
1975 року уклав контракт з клубом «Янг Бойз», у складі якого провів наступні чотири роки своєї кар'єри гравця. Граючи у складі «Янг Бойз» також здебільшого виходив на поле в основному складі команди і допоміг команді виграти Кубок Швейцарії 1977 року. Завершив ігрову кар'єру 1980 року.
По завершенні кар'єри тривалий час працював у структурі «Базеля», а 1992 року недовго виконував обов'язки головного тренера клубу. Його біографія була опублікована в 2002 році під назвою «Karli none Gool!».[3].
Виступи за збірну
5 червня 1965 року дебютував в офіційних матчах у складі національної збірної Швейцарії в товариській грі проти Англії (1:8), яка проводилася в Базелі.
У складі збірної був учасником чемпіонату світу 1966 року в Англії. На цьому турнірі він зіграв один матч із Західною Німеччиною (0:5), а його команда не подолала груповий етап.
3 1970 року був капітаном збірної аж до завершення виступів на міжнародному рівні в кінці 1973 року. Загалом протягом кар'єри у національній команді, яка тривала 11 років, провів у її формі 50 матчів, забивши 10 голів[4].