In this letter, we propose a low complexity Maximum Likelihood (ML) decoding algorithm for quasi-orthogonal space-time block codes (QOSTBCs) based on the real-valued lattice representation and QR decomposition. We show that for a system with rate r = ns/T, where ns is the number of transmitted symbols per T time slots; the proposed algorithm decomposes the original complex-valued system into a parallel system with ns 2 times 2 real-valued components, thus allowing for a simple joint decoding of two real symbols. For a square QAM constellation with L points (L-QAM), this algorithm achieves full diversity by properly incorporating two-dimensional rotation using the optimal rotation angle and the same rotating matrix for any number of transmit antennas (N ges 4). We show that the complexity gain becomes greater when N or L becomes larger. The complexity of the proposed algorithm is shown to be linear with the number of transmitted symbols ns.