Estreou-se no Teatro Universitário do Porto em 1975. Passa a integrar o elenco do Teatro Experimental do Porto (Teatro Experimental do Porto) em 1981, onde se profissionalizou. Participou em espectáculos como A Boda dos Pequenos Burgueses de Bertolt Brecht, Viver Como Porcos de John Arden, Quase Um Conto de Fadas de António Buero Vallejo (enc.: Moncho Rodrigues). É sócio-fundador de Os Comediantes em 1983, participou em O Jogo do Amor e do Acaso de Marivaux, O Pássaro Verde de Carlo Gozzi (enc.: João Paulo Costa), Sonho de Uma Noite de Verão de W. Shakespeare (enc.: Isabel Alves), Possessos de Amor de Sam Shepard (enc.: Peter Field). Em co-produção com o TEAR integrou o elenco de O Anfitrião de António José da Silva e Tartufo de Molière (enc.: Moura Pinheiro). No Seiva Trupe participou em espectáculos como O Animador de John Osborne (enc.: Laurence Bosnwell) e O Vendedor de Milagres de Gabriel Garcia Marquéz (enc.: José Caldas). Em 1994, participou em A Tempestade de W. Shakespeare (enc.: Silviu Purcarete, TNSJ). De volta ao Teatro Experimental do Porto, em 1996, participou em Mauser de Heiner Müller (enc.: Paulo Castro) e encenou No Reino da Bicharada de Manuel António Pina e Comédia de Bastidores de Alan Ayckbourn. Na televisão participou em séries como Viva o Cinema, A Escrita da Casa, Histórias Quase Clínicas, Corações Periféricos, A Viúva do Enforcado (real.: Walter Avancini), Clube Paraíso (real.: Paulo Grisolli) e Os Andrades. É colaborador da RTP, SIC e TVI como actor de dobragem. Participou também como actor no filme O Rio do Ouro de Paulo Rocha, O Delfim de Fernando Lopes e A Filha de Solveig Nordlund. É um dos fundadores do grupo Assédio, onde tem dirigido e interpretado textos de Martin Crimp, Caryl Churchill, Harold Pinter, Luigi Lunari, Gerardjan Rijnders.
Nos Artistas Unidos:
1998 – A TRAGÉDIA DE CORIOLANO de William Shakespeare, encenação de Jorge Silva Melo (Rivoli Teatro Municipal).
1998 – A QUEDA DO EGOÍSTA JOHANN FATZER de Bertolt Brecht, encenação Jorge Silva Melo (Teatro Variedades).
2002 – DA CINZA ÀS CINZAS de Harold Pinter, encenação de João Cardoso (A Capital Teatro Paulo Claro).