Castilho localiza-se na região Noroeste do Estado de São Paulo, na zona fisiográfica (mesorregião) de Araçatuba, microrregião de Andradina. Está a 680 quilômetros da capital paulista, pela via Marechal Rondon (SP-300), totalmente duplicada e a 850 quilômetros, por via férrea.
Faz divisa, ao Norte, com o município de Itapura, por meio do rio Tietê; ao Sul, com Nova Independência, São João do Pau D´Alho e Paulicéia; a Leste, com o município de Andradina (13 quilômetros); e, a Oeste, com o Estado de Mato Grosso do Sul (Três Lagoas), tendo como divisa o rio Paraná.
É, até certo ponto, um município privilegiado, no que tange à necessidade de transporte, pois possui acesso a rodovia duplicada, que segue até a capital paulista (Marechal Rondon, prosseguindo pela rodovia Castelo Branco); também possui acesso à estrada de ferro; é servido pela hidrovia Tietê-Paraná e já possuiu até mesmo um aeroporto internacional.
Castilho possui as seguintes coordenadas geográficas: Latitude: 20° 52’ 15” Sul, Longitude: 51° 29’ 13” Oeste, e a altitude de 369 metros. Seu clima é seco e temperado, com temperatura média oscilando entre 26º e 30º, com inverno estável. Seu relevo é constituído por superfícies planas, o solo arenoso de alta fertilidade e viabiliza o manejo de terras.