Nein, eine Firewall alleine schützt nicht vor Viren. Wenn du wissen willst, was eine Firewall macht und wie sie arbeitet, dann kannst du das z.B. hier nachlesen:
http://www.different-thinking.de/firewall.php
Kurz gesagt ist es so, dass eine gut konfigurierte Firewall zwar das illegale Eindringen von Schadprogrammen verhindern kann, die versuchen, quasi heimlich über einen nicht abgesicherten Port auf den Rechner zu gelangen. Jedoch kann sie nicht verhindern, dass diese Schädlinge einen Port benutzen und sich unter dem Deckmantel eines Programmes auf den Rechner schleichen, die durch die Firewall nicht geblockt werden. Und das ist beim Surfen der Fall. Der Port, über den mit dem Internet kommuniziert wird, ist offen und der Browser hat Zugriff auf das Netz. Wenn dein Sohn nun z.B. ein verseuchtes Programm herunter lädt oder eine verseuchte Internetseite besucht, kann ein Virus relativ problemlos auf den Rechner gelangen. Die meisten Viren verbreiten sich übrigens über den E-Mail-Verkehr. Viren verstecken sich meist in E-Mail-Anhängen. Wenn diese nicht virengeprüft und dann geöffnet werden, ist es schon passiert.
Du kannst dir das stark vereinfacht wie ein Haus vorstellen, welches mehrere Eingänge hat. Sind alle Türen sicher verschlossen, kann nichts passieren. Wenn jetzt aber jemand das Haus verlassen will/muss, um z.B einkaufen zu können, dann muss eine Tür geöffnet werden. Der Einkäufer und auch alle anderen Personen können jetzt das Haus über diese Tür unkontrolliert verlassen und/oder betreten und (auch unwissentlich) Sachen in das Haus schleppen, die dort nicht sein sollten. Ein Virenprogramm ist nun erstens dafür da gleich an der Tür zu kontrollieren, dass nichts reingeschleppt wird (also so 'ne Art Portier) und zweitens auch das Haus nach solchen Sachen zu durchsuchen (wie ein Hausmeister, der nach dem Rechten schaut).
Daher ist ein Virenscanner Pflicht. Es dauert übrigens statistisch gesehen im Durchschnitt nur wenige Minuten, bis ein völlig ungeschützter Rechner im Netz mit einem Schädling infiziert ist.