Bülach liegt auf 428 m ü. M. am westlichen Fuss des Dättenberges. Zu Bülach gehören neben der eigentlichen Stadtsiedlung mit mittelalterlichem Kern die Ortschaften Eschenmosen, Nussbaumen und Heimgarten. Der heutige Stadtteil Niderflachs war ursprünglich ebenfalls eine eigene Siedlung, Bülach umfasst 22 politische Gemeinden: