Bosonic quantum error correction is a viable option for realizing error-corrected quantum information processing in continuous-variable bosonic systems. Various single-mode bosonic quantum error-correcting codes such as cat, binomial, and Gottesman-Kitaev-Preskill (GKP) codes have been implemented experimentally in circuit QED and trapped-ion systems. Moreover, there have been many theoretical proposals to scale up such single-mode bosonic codes to realize large-scale fault-tolerant quantum computation. Here, we consider the concatenation of the single-mode GKP code with the surface code, namely, the surface-GKP code. In particular, we thoroughly investigate the performance of the surface-GKP code by assuming realistic GKP states with a finite squeezing and noisy circuit elements due to photon losses. By using a minimum-weight perfect matching decoding algorithm on a three-dimensional spacetime graph, we show that fault-tolerant quantum error correction is possible with the surface-GKP code if the squeezing of the GKP states is higher than 11.2 dB in the case where the GKP states are the only noisy elements. We also show that the squeezing threshold changes to 18.6 dB when both the GKP states and circuit elements are comparably noisy. At this threshold, each circuit component fails with probability 0.69%. Finally, if the GKP states are noiseless, fault-tolerant quantum error correction with the surface-GKP code is possible if each circuit element fails with probability less than 0.81%. We stress that our decoding scheme uses the additional information from GKP-stabilizer measurements and we provide a simple method to compute renormalized edge weights of the matching graphs. Furthermore, our noise model is general because it includes full circuit-level noise.