This paper introduces block orthogonal sparse superposition (BOSS) codes for efficient short-packet communications over Gaussian channels. Unlike conventional sparse superposition codes, an encoder of BOSS code uses multiple unitary matrices as a fat dictionary matrix and maps information bits such that multiple subgroups of codewords are orthogonal. Exploiting this orthogonal property per group, a two-stage maximum a posteriori (MAP) decoding algorithm is presented. The key idea of the two-stage MAP decoder is to successively estimate the non-zero alphabets corresponding to the orthogonal columns in a dictionary matrix and the index of a sub-dictionary matrix containing the columns This decoding algorithm achieves a near-optimal decoding performance while requiring polynomial time complexity in blocklength. Via simulations, we show that the proposed encoding and decoding techniques achieve enhanced block-error-rate performances in the short blocklength regime compared to the state-of-the-art coded modulation methods.