Under OL 1908 vant han to gull og en bronse. Han var da 60 år, kun et år yngre enn den da eldste olympiske gullmedaljøren Joshua Millner. Fire år senere, under OL 1912 i Stockholm var han med på det svenske laget som vant gull i 100 meter løpende hjort og han vant også bronse individuelt. Med sine 64 år og 257 dager er han den eldste gullmedaljøren i OL. I en alder av 72 år var han den eldste deltakeren under OL 1920 i Antwerpen. Han tok sølv i dobbeltskudd løpende hjortkonkurransen og er dermed den eldste medaljøren gjennom tidene; 72 år og 279 dager. Han deltok ikke under OL 1924 i Paris på grunn av sykdom. Under samtlige olympiske lagkonkurranser som Oscar Swahn deltok i, 1908, 1912 og 1920 var også hans sønn Alfred Swahn med på laget. Alfred vant også to gull, en sølv og en bronsemedalje individuelt.