The genetic basis of complex diseases is expected to be highly heterogeneous, with many disease genes, where each gene by itself has only a small effect. Based on the nonlinear contributions of disease genes across the genome to complex diseases, we introduce the concept of single nucleotide polymorphism (SNP) synergistic blocks. A two-stage approach is applied to detect the genetic association of synergistic blocks with a disease. In the first stage, synergistic blocks associated with a complex disease are identified by clustering SNP patterns and choosing blocks within a cluster that minimize a diversity criterion. In the second stage, a logistic regression model is given for a synergistic block. Using simulated case-control data, we demonstrate that our method has reasonable power to identify gene-gene interactions. To further evaluate the performance of our method, we apply our method to 17 loci of four candidate genes for paranoid schizophrenia in a Chinese population. Five synergistic blocks are found to be associated with schizophrenia, three of which are negatively associated (odds ratio, OR < 0.3, P < 0.05), while the others are positively associated (OR > 2.0, P < 0.05). The mathematical models of these five synergistic blocks are presented. The results suggest that there may be interactive effects for schizophrenia among variants of the genes neuregulin 1 (NRG1, 8p22-p11), G72 (13q34), the regulator of G-protein signaling-4 (RGS4, 1q21-q22) and frizzled 3 (FZD3, 8p21). Using synergistic blocks, we can reduce the dimensionality in a multi-locus association analysis, and evaluate the sizes of interactive effects among multiple disease genes on complex phenotypes.