徐文远的孙子，曾祖母是梁元帝女儿安昌公主。举明经科，担任蒲州司法参军，绍封东莞男。为政宽仁，不行杖罚。载初元年（690年），累迁为司刑丞。寻转秋官员外郎，转郎中。后免官，久之，起为左台侍御史。当时酷吏肆虐，陷害无辜，动辄处死。徐有功依法办案，虽然常常被武则天斥责，也不罔法杀人。当时称遇到来侯必死，遇到徐杜必生。来俊臣陷害任知古、狄仁杰、魏元忠、裴行本等大臣，后来改为流放，来俊臣坚持处死，徐有功当廷驳斥。长寿二年（693年），徐有功坚持称窦德妃（后来唐玄宗之母）的母亲庞氏无罪，庞氏得免死刑，改判流放，但他