Elle prend sa source sur le plateau de Langer, dans le village français de Le Châtelet-sur-Meuse, à 409 m d’altitude. La longueur du fleuve est de 950 km et son bassin hydrographique couvre une superficie d’environ 36 000 km², mais la plus grande partie du fleuve se trouve en Belgique, soit 14 000 km². La longueur navigable du fleuve est de 226 km. Le débit moyen de l’eau est de 300 à 400 m³/s et le maximum est de 3000 m³/s.
Elle prend sa source sur le plateau de Langres, dans la commune française du Châtelet-sur-Meuse (région Champagne-Ardenne, département de la Haute-Marne), à 409 m d’altitude. Elle se poursuit approximativement vers le nord en Lorraine, où elle traverse les départements des Vosges et de la Meuse, qui lui a donné son nom. Dans le village de Bazoilles-sur-Meuse, la rivière disparaît sous terre et remonte à Neufchâteau. Elle traverse ensuite le massif ardennais (dans le département des Ardennes de la région Champagne-Ardennes, y compris la ville de Sedan) et entre en Belgique à Givet. En Belgique, elle traverse les provinces wallonnes de Namur et de Liège.
Après sa confluence avec la Sambre à Namur, elle tourne vers l’est et continue vers le nord à partir de Liège. Elle forme alors la frontière entre la province flamande du Limbourg et la province du même nom aux Pays-Bas, la frontière entre les Pays-Bas et la Belgique ne se situant qu’à Maastricht, à l’ouest de la rivière. Aux Pays-Bas, il continue vers le nord à travers la ville de Venlo, le long de la frontière avec l’Allemagne, avant de tourner vers l’ouest. Avec le Rhin, il forme un grand delta. C’est pourquoi on le qualifie parfois d’affluent du Rhin, car il rejoint le bras gauche du delta. Il se jette dans la mer du Nord. Sur son cours inférieur, le niveau du fleuve est supérieur à celui de la campagne environnante et des digues de protection ont été construites autour du fleuve.