Indoor positioning is the key enabling technology for many location-aware applications. As GPS does not work indoors, various solutions are proposed for navigating devices. Among these solutions, Bluetooth low energy (BLE) technology has gained significant attention due to its affordability, low power consumption, and rapid data transmission capabilities, making it highly suitable for indoor positioning. Received signal strength (RSS)-based positioning has been studied intensively for a long time. However, the accuracy of RSS-based positioning can fluctuate due to signal attenuation and environmental factors like crowd density. Angle of arrival (AoA)-based positioning uses angle measurement technology for location devices and can achieve higher precision, but the accuracy may also be affected by radio reflections, diffractions, etc. In this study, a dual-branch convolutional neural network (CNN)-based BLE indoor positioning algorithm integrating RSS and AoA is proposed, which exploits both RSS and AoA to estimate the position of a target. Given the absence of publicly available datasets, we generated our own dataset for this study. Data were collected from each receiver in three different directions, resulting in a total of 2675 records, which included both RSS and AoA measurements. Of these, 1295 records were designated for training purposes. Subsequently, we evaluated our algorithm using the remaining 1380 unseen test records. Our RSS and AoA fusion algorithm yielded a sub-meter accuracy of 0.79 m, which was significantly better than the 1.06 m and 1.67 m obtained when using only the RSS or the AoA method. Compared with the RSS-only and AoA-only solutions, the accuracy was improved by 25.47% and 52.69%, respectively. These results are even close to the latest commercial proprietary system, which represents the state-of-the-art indoor positioning technology.